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。

05-06 08:26