Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

30min shell 怎么不更新了呢 #10

Open
weaming opened this issue Nov 23, 2015 · 9 comments
Open

30min shell 怎么不更新了呢 #10

weaming opened this issue Nov 23, 2015 · 9 comments

Comments

@weaming
Copy link

weaming commented Nov 23, 2015

RT

@qinjx
Copy link
Owner

qinjx commented Nov 23, 2015

30分钟其实已经看不完了。我主要是在做另外的项目,没有继续投精力在这个文档上:(

@xiaduan
Copy link

xiaduan commented Jan 24, 2016

作者有时间的话请继续写写

@ThroughLee
Copy link

  • 催更~~

@weaming
Copy link
Author

weaming commented Jan 25, 2016

复制了GNU的shell文档:
http://docs.ruanjiadeng.com/gnu/bash/

@JunyiGu
Copy link

JunyiGu commented Mar 9, 2016

看了还是很有帮助的,催更~~

@Artoria2e5
Copy link

Artoria2e5 commented May 4, 2016

其实建议看一下 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。
  • if 写成一行那个里面反引号是闹哪样?还要把 xiaoming 2333 233 tty0 ssh [email protected] 执行一下吗……
    • 其实写成一行按分号和回车比没什么方便的,顶多说是适合装 X 或者省地方……。
      • 注意分号的时候对 Ctrl-C 处理是不一样的。
    • 这种事情建议多过过 shellcheck。
  • case 可以提一下 Bash 一个不 break 的拓展 ;&
  • case 可以考虑用 (pattern) 括号平衡的风格,一些编辑器这样更高兴。有些 shell 在 $() 里面看到 pat) 会提早结束,这样也能解决。坏处是如果少写了 ;; 的话这个可能被当作 subshell 命令以至于得到不知所云的报错。
  • [ 为命令的论述里面,“PATH 中的可执行程序 foo 是 foo 为命令的充要条件”这个前件为假。
    • 现代人开 bash 用 [[,麻烦少。
    • 现代人开 bash 遇到 -eq -lt -gt 一般用 (( )) 里面的表达式。
    • $foo 没双引号。
  • 格式上,shell 代码可以用 ````bash` 和 ````` 组成的多行代码块包裹。
  • source. 的里面对于可移植性的论述存在问题——应该是 sh 脚本而非 bash(否则没有可移植性问题)。
    • sh 的 POSIX 标准原型是 Bell Bourne,但是实现不一定是。
    • OS X sh 其实 --version 一下就会发现也是个 bash……
  • 多行注释其实还有个利用 here-document 的玩法,: << '我说完了' 什么的。
  • source 写作 . foo 并没有问题,只是会在 PATH 里面找而已。. gettext.sh 什么的。

@jalenjie
Copy link

哇 。谷歌 shell编程 这么靠前 ... 作者要更新啊..

@qinjx
Copy link
Owner

qinjx commented Sep 19, 2017

谢谢大家关心和支持,谢谢Artoria2e5网友指正。我会更新,继续写下去。

@Tomotoes
Copy link

惊呆了 , 5k 多个 star ...
国人的力量 太强大...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants