Shell 语法
复合命令
1 2 3 4
| (list) { list; } ((expression)) [[ expression ]]
|
带有空格的文件名处理
1 2 3 4 5 6 7 8
| find . -type f -name "*[[:space:]]*" -print | while read name ;do new=`echo $name | sed s'@[[:space:]]@_@'g`; echo "mv $name $new" ; mv "$name" $new; done
|
Parameter
位置参数
扩展
参数扩展
$
符号用于参数扩展,命令替换或算术扩展.可以使用花括号({}
)将要扩展的参数名称或符号括起来,该括号是可选的,但要保证扩展的变量不受紧随其后字符的影响.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ${parameter} ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} ${parameter:offset} ${parameter:offset:length} ${#parameter} ${parameter/pattern/string}
${parameter^pattern} ${parameter^^pattern} ${parameter,pattern} ${parameter,,pattern}
|
算术运算
1 2 3 4 5
| $((expression)) sum=$[ ${v1} + ${v2} ] (( sum=${v1} + ${v2} )) let sum=${v1}+${v2} `expr ${v1} + ${v2}`
|
条件判断语句
Bash 中的条件判断语句使用 [[ 复合命令 ]]
,test
和 [ 内置命令 ]
对文件属性,字符串进行判断或进行算术比较.
文件相关
下面是常用的文件属性进行条件判断语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| -a file -b file -c file -d file -e file -f file -h file -p file -r file -s file -w file -x file -L file -S file
|
字符串与算术运算相关
1 2 3 4 5 6 7 8 9
| -v varname -z string -n string string1 == string2 string1 != string2 string1 < string2 string1 > string2
arg1 OP arg2
|