原帖地址:http://hi.baidu.com/lozard/item/6bf9de1b2e704ef1756a84e3
首先先看几种写法,这里用if语句作为例子。
第一种
1: test(){
2: if [ 1 -eq 1 ]; then
3: echo "1=1"
4: else
5: echo "1!=1"
6: fi
7: }
第二种
1: test1(){
2: if [ 1 -eq 1 ]
3: then echo "1=1"
4: else echo "1!=1"
5: fi
6: }
第三种
1: test2(){if[1-eq1];thenecho"1=1";elseecho"1!=1";fi}
由此可见分号是用来隔断每个语法关键字或命令的 。对于字符的比较及其他shell语法关键字之间分号的使用方式相同。需要知道的是在不同的语法命令之间要用分号隔开或是换行方能执行,否则将会在调用脚本的时候报错。
分号是多个语句之间的分隔符,
例如你下面这句:
1: if[XXXXXXXXXXXXX];then
1: if[XXXXXXXXXXXXX]
2: then
补充
if语句后的表达式比较变量要与比较操作符用空格分开。
shell中用arrary=(arr1 arr2 arr3 ……) 的方式声明数组
访问数组时使用${arrary[@]}访问整个数组 ,@表示数组索引表,使用${p[index]}访问数组中的某个特定的值
变量赋值时变量名跟等号之间不能有空格
$# ——传给shell程序的位置参数个数;$0 ——脚本名称;$? ——最后命令的完成码或在shell程序内所执行的shell程序;$n (n>0)——获取传递的第n个参数
cd /opt/tomcat/tomcat*0 * 号代表匹配0..n个字符;cd /opt/tomcat/to?cat ? 号代表匹配1个字符