变量名和等号之间不能有空格
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:
数组名=(值1 值2 ... 值n)
例如:
array_name=(value0 value1 value2 value3)
或者:
array_name=(
value0
value1
value2
value3
)
或者
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
读取数组:
${数组名[下标]} 如:value=${array_name[n]}
使用 @ 符号可以获取数组中的所有元素,如:echo ${array_name[@]}
# 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
关系运算符只支持数字,不支持字符串,除非字符串的值是数字
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
<?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 }
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。