1 shell语句的基本构成
shell每个基本的构成元素之间都相隔一个空格。
比如[ -e file ],[、-e、file、]这四个基本元素之间都相隔了一个空格。
同样的道理[ ! -e file ],[、!、-e、file、]这五个基本元素之间都相隔一个空格。
2 shell if expression combine
!、a、o,分别非、与和或,不需要带括号,它们本身就是分隔符。
3 bash shell的所有的true的概念是0,这个和其它编程语言的相反
4 x="hello"
" $x "等价于" hello ",注意两边的空格,它们是粘贴在一起的。
5 for c in $ABC; do
done,默认是以空格和tab键为分隔符的。
6 ||和&&
command1 || command2,command1执行失败了,执行command2
command1 && command2, command1执行成功了,执行command2
7 空格和等于号
当等于号前后都没有空格时,等于号是赋值的意思。当等于号前后都有一个空格时,等于号是判断是否相等的意思。
8 bash本身不关心命令或者脚本参数的形式
可以使“-”,可以使“--”,也可以什么都没有。
至于怎么去解析和使用这些参数,都有命令或者脚本自己去处理。
比如bash shell脚本,--enable-add-ons=nptl,脚本中处理的时候,先提取出enable-add-ons,然后给enable-add-ons赋值为nptl来set这个变量。在./configure –-enable-add-ons=nptl的时候,bash只是把—enable-add-ons赋值给位置参数$1,其它的什么都没有做,它并不会解析“--”。
9 bash shell的条件的通用格式
[ xxx yyy xxx ],"["、"xxx"、"yyy"、"xxx"、"]"这五者之间都加一个空格。其中前面的xxx是一个变量,后面的xxx是一个字符串。yyy等于的话用“=”,其它依次类推。
这个通用格式称为test-command。