30min_guides
30min_guides copied to clipboard
30min shell 怎么不更新了呢
RT
30分钟其实已经看不完了。我主要是在做另外的项目,没有继续投精力在这个文档上:(
作者有时间的话请继续写写
- 催更~~
复制了GNU的shell文档: http://docs.ruanjiadeng.com/gnu/bash/
看了还是很有帮助的,催更~~
其实建议看一下 http://mywiki.wooledge.org/BashGuide …… WoolEdge 这个很多方面都适合养成好习惯。
顺口勘误一下好了:
- if/while 的 condition 其实也是命令,建议在这之前先引入 shell 真假判断基准的概念。(呃,条件判断这个 TODO 我看到了,但是没有那些流程控制你也看不出条件的效果……)
- 并且还可以是一大块命令。
- select 本身是个类似 while 的循环,到时候得提到。
- PHP 那个和 shell script 没有关系,只是个普通的可直接执行(有 shebang)的 script。
- 重申:shell 指的是操作系统接受用户操作的外壳程序。很长一段时间唯一流行且能用的字符 shell 语言家族就是 Bourne-POSIX 家族,自然就这么强行特化地叫了。
- “推荐给所有变量加上花括号” 是编程好习惯,不是日常交互好习惯(太麻烦)。
- 哦,旧版 MSYS 的 MinGW 糟透了,快用 msys2。
- 重申:shell 指的是操作系统接受用户操作的外壳程序。很长一段时间唯一流行且能用的字符 shell 语言家族就是 Bourne-POSIX 家族,自然就这么强行特化地叫了。
- if 写成一行那个里面反引号是闹哪样?还要把
xiaoming 2333 233 tty0 ssh [email protected]
执行一下吗……- 其实写成一行按分号和回车比没什么方便的,顶多说是适合装 X 或者省地方……。
- 注意分号的时候对 Ctrl-C 处理是不一样的。
- 这种事情建议多过过 shellcheck。
- 其实写成一行按分号和回车比没什么方便的,顶多说是适合装 X 或者省地方……。
- case 可以提一下 Bash 一个不 break 的拓展
;&
。 - case 可以考虑用
(pattern)
括号平衡的风格,一些编辑器这样更高兴。有些 shell 在$()
里面看到pat)
会提早结束,这样也能解决。坏处是如果少写了;;
的话这个可能被当作 subshell 命令以至于得到不知所云的报错。 -
[
为命令的论述里面,“PATH 中的可执行程序 foo 是 foo 为命令的充要条件”这个前件为假。- 现代人开 bash 用
[[
,麻烦少。 - 现代人开 bash 遇到
-eq
-lt
-gt
一般用(( ))
里面的表达式。 -
$foo
没双引号。
- 现代人开 bash 用
- 格式上,shell 代码可以用 ````bash` 和 ````` 组成的多行代码块包裹。
-
source
和.
的里面对于可移植性的论述存在问题——应该是 sh 脚本而非 bash(否则没有可移植性问题)。- sh 的 POSIX 标准原型是 Bell Bourne,但是实现不一定是。
- OS X sh 其实
--version
一下就会发现也是个bash
……
- 多行注释其实还有个利用 here-document 的玩法,
: << '我说完了'
什么的。 -
source
写作. foo
并没有问题,只是会在 PATH 里面找而已。. gettext.sh
什么的。
哇 。谷歌 shell编程 这么靠前 ... 作者要更新啊..
谢谢大家关心和支持,谢谢Artoria2e5网友指正。我会更新,继续写下去。
惊呆了 , 5k 多个 star ... 国人的力量 太强大...