基本语法
1、条件判断
if [ condition1 ];then command 1elif [ condition2 ];then command 2else command3fi
写成一行:if [ condition ]; then command; fi
注意: (1)if .. fi标志着判断语句的开始和结束; (2)[ ]是条件判断符,注意条件语句和判断符首末都需要空出一格;2、循环
for循环for var in item1 item2 item3;do command1 command2done
类C风格for循环
for((i=0;i<3;i++));do command1 command2done
更详细的参考:
shell流程控制: shell循环:实例
1、判断
(1)数值判断#保证脚本传入参数个数正确再执行后面部分if [ $# -lt 3 ];then echo "lack parameters!" exit 1fi
(2)字符串判断
(3)文件检测if [ -s ../work/file1 && -s ../work/file2 ];then python run.py if [ ${?} -eq 0 ];then exit 0 else echo "error" exit 1 fifi
2、循环
(1)数字循环sum=0for i in {1..19}; do $sum = $sum + $i echo "sum=$sum"done
(2)字符串循环
list = "Hello world! "for i in $list;do echo $idone
(3)文件路径循环
for file in /home/doc/shell/*.shdo echo $filedone
(4)用循环实现多条类似命令并行
FILE_LIST="file1 file2 file3 ";for $file in $FILE_LIST;do{ $HADOOP fs -cat $HADOOP_OUT/$file/* > localpath/$file.txt}donewait
说明:haodoop fs -cat命令需要花费一定的时间,因此当需要cat多个路径下的文件时,可以通过for循环让它们并行节省时间,wait命令保证for循环中的命令都执行完后,再执行后续部分。