1. >重定向, >>表示不清除原来的,而追加输出!
2. 2 > /dev/null 将标准错误重定向
3. 变量赋值时, “=”左右两边都不能有空格, 声明局部变量的时候用local。
4. 变量使用时, 变量前加 $
5. 在容易发生歧义的地方, 变量最好带{}, 如:${STR}
6. 整数运算一般通过 let 和 expr 这两个指令来实现:如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`, 无浮点变量; 运算符左右都有空格;使用*(乘号)时, 要用‘\’屏蔽
7. 对于整数比较:-eq, ne, -gt, -lt, -ge, -le:(e:equal, g:greate, l:little, t:than)
8. 字符串比较: 为空:-z(zero), 不为空:-n 更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。
9. shell判断文件属性的操作(满足要求时,返回TRUE):
-e file 文件存在
-f file 普通文件
-s file 文件大小不为0
-d file 为目录
-r/-w/-x 可读/写/执行
f1 -nt f2 文件f1比f2新(new than)
f1 -ot f2 文件f1比f2老(old than)
10. 流控制语句
if [ 表达式 ];then
----
fi
if [ 表达式 ];then
----
else if [ 表达式 ]; then //(elif == else if)
----
fi
11. for循环
for $var in
do
----
done
12. while循环
while [ condition ]
do
----
done
13. until
until [ condition is True ]
do
----
done
14. case
case "$var" in
@1)
----;;
@2)
----;;
default ----;;
esac
15. read用来读取输入, break 和 continue意思和在C语言中相同
16. 函数,
函数名子(){
代码段
}
BASH 要求返回值必须为一个整数,不能用 return 语句返回字符串变量。
17. 随机数 a=$RANDOM
18.变量的特殊操作
${var-default} 表示如果变量 $var 还没有设置,则保持 $var 没有设置的状态,并返回后面的默认值 default。
${var=default} 表示如果变量 $var 还没有设置,则取后面的默认值 default。
${var+otherwise} 表示如果变量 $var 已经设置,则返回 otherwise 的值,否则返回空( null )。
${var?err_msg} 表示如果变量 $var 已经设置,则返回该变量的值,否则将后面的 err_msg 输出到标准错误输出上。