SHELL
变量
- 条件赋值
${v:-default}
v定义则值为$v, 未定义则值为default${v:+default}
与上相反${v:?default}
v已定义则值为$v, 未定义则输出default到strerr 并退出脚本
- declare
- i: 整数
- f:输出指定函数定义,如不指定则输出先前定义的所有函数
- a:数组
- r:只读,同 readonly
- x:导出变量,同 export
- local
函数内局部变量
数组
- 数组定义
arr=(elem1 elem2 ...)
- 数组元素
arr[n]
- 数组元素个数
${#arr{*}}
- 数组元素长度
${#arr[n]}
- 数组遍历
for e in ${arr[*]}
do
echo ${e}
done
for i inseq 0 $[${#arr[*]}-1]
do
echo ${arr[i]}
done
控制语句
- if
if [ cond1 ]
...
elif [ cond2 ]
...
then
...
fi
for
for i in `seq 10` do ... done for((i=0; i < N; i++)) do ... done
while
while [ *cond* ] do ... done
case
case *var* in x|X)... ;; y|Y)... ;; *) ;; esac
常规break后面加;;
无条件继续后面加;&
有条件继续后面加;;&