shell 对于符号的要求好严格啊,有没有智能的 IDE 啊

2022-12-04 19:28:48 +08:00
 Aurora0
8176 次点击
所在节点    Linux
78 条回复
varius
2022-12-04 23:07:54 +08:00
@Danswerme 你是懂把用 ai 的账户送走的
Danswerme
2022-12-04 23:12:36 +08:00
@varius 待会去水深火热里面找个帖子试试🤣
debuggerx
2022-12-04 23:31:48 +08:00
pycharm(社区版也可以)装 bash support 插件很好用 有些可以运行但是有风险不推荐的写法也能提示出来 并给出修改建议
Aurora0
2022-12-04 23:38:17 +08:00
@vision1900 #39 好用,不过他的提示有点毛病


按照他提示改,又给我提示这个

Aurora0
2022-12-04 23:39:28 +08:00
@debuggerx #43 pycharm 不轻量吧,idea 他们家好像是要出一个轻量级编辑器
Aurora0
2022-12-04 23:42:09 +08:00
@ciaoly #33 刚刚脱离 termius ,全部转 iterm 了,ssh 环境,主题什么的刚弄好,已经不想折腾了 😹
L4Linux
2022-12-05 00:22:47 +08:00
@Aurora0 Modify * to @.
Aurora0
2022-12-05 00:50:19 +08:00
@L4Linux #47 看来我的错误还有很多,自学还有很多不足
顺便问一下,我想用正则把一个需要的字符从文件里面取出来,但是 awk 可以正则匹配,并输出正则匹配的字符吗

test = termius, iterm = ssh4, pycharm =true

比如这个我现在要使用一次 cut 和一次 awk ,或者两次 awk 才能取出 ssh4
xiaket
2022-12-05 07:15:14 +08:00
推荐在脚本开头加上这三行:

```
set -o errexit
set -o nounset
set -o pipefail
```
L4Linux
2022-12-05 09:05:43 +08:00
@Aurora0 awk 可以直接按正则输出第二个匹配。怎么写直接看文档吧,我每回也是现查的。
huntagain2008
2022-12-05 09:15:08 +08:00
@Aurora0 #48 小白我是先将换行符设置为“,“ 再将字段分隔符设置为“=” 匹配记录 item *=.* 再输出最后一个字段
$ awk -v RS=',' 'BEGIN { FS = “=” } /iterm *=.*/ { print $NF }' file1
ssh4
skyrim61
2022-12-05 09:26:21 +08:00
@Aurora0 要这样写
for i in "${arr[@]}"; do
echo "$i"
done
skyrim61
2022-12-05 09:27:12 +08:00
@skyrim61
关于在 shell 脚本中数组变量中 “*”跟 “@” 区别
“*”当变量加上“” 会当成一串字符串处理.
“@”变量加上“” 依然当做数组处理.
在没有加上“” 的情况下 效果是等效的.
aloxaf
2022-12-05 09:48:43 +08:00
bash 新手必读书目: https://mywiki.wooledge.org/BashPitfalls
人生苦短,远离 bash (
lisxour
2022-12-05 10:01:24 +08:00
个人建议是放弃使用 sh ,上古语法捞到不行,不经常写的话,学了又忘,忘了又查,永无止尽,缺少很多现代功能,比如一个很简单的判断字符串是否以 XXX 开头或者 XXX 结尾,只能用很诡异的语法+正则,对于更现代化的 API ,就是一个 startWith 、endWith 的事。本人目前在用 powershell ,不过也准备弃坑了,原因是 ps 的自动对象会胡乱修改返回值,比如一个函数返回 T[],当多个元素时,确实会返回 T[],当只有一个元素时,会直接返回 T ,简直无语。
Aurora0
2022-12-05 10:06:40 +08:00
@lisxour 主要是想把一些重复的操作用命令行解决,不管怎样最后还是要回归 shell 吧
Aurora0
2022-12-05 10:07:46 +08:00
@aloxaf 看到了一些不错的例子,入门的都不讲 awk 的单双引号,一律单引号,被坑了
lisxour
2022-12-05 10:25:49 +08:00
@Aurora0 我意思是尽量少用 sh 脚本,本人也写过 bat 、sh ,同一份脚本为了能在 windows 、linux 、macos 使用,得写一份 bat 、一份 sh ,真的是痛苦,后来改用 powershell ,一份脚本,多平台跑,装个 powershell core 就完事了。
Aurora0
2022-12-05 10:38:34 +08:00
@lisxour powershell 可以把一个 sh 多平台运行吗,厉害了,我有时间试试,Mac 的命令好像相对 Linux 有点阉割
Aurora0
2022-12-05 10:40:25 +08:00
@lisxour 有推荐的 awk 教程吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/900033

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX