SHELL之循环语句 Posted on 2008-08-24 In Linux if语句 交互选择 循环判断 数值运算符 ………… if语句格式: 123456if [ 条件 ]then commandelse commandfi 交互选择(N可以为*) 12345678910echo -e "提示语言,后边有光标提供输入"cread VARcase $VAR inY) command;;N) command;;esac 对条件进行循环检查,成立则处理,否则继续检查 12345678910111213a=1while [ "$a" = "1" ]dofileno=`ls -l /list/filename* |wc -l`if [ "$fileno" = "10" ]then a=10 commandelse a=1 sleep 300fidone 123456grep -v www filename 过滤不包含grep www filename 过滤包含uniq -u 过滤没有相同行uniq -d 过滤具有相同行sort 排序paste -d”;” filename1 filename2 把文件并列合并并且以;间隔 1234567891011121314151617181920if [ "a" = "10" ] #a=10[ "a" -ne "10" ] 同上一行[ -s filename ] 文件大小大于0-s 文件大小大于0返回真-d 是一个目录是返回真-e 文件或目录存在返回真-g 存在是SGID返回真-h 文件是连接文件返回真-k 文件是粘滞位返回真-r 文件或目录存在并可读时返回真-w 文件或目录存在并可写时返回真-u 文件是SUID返回真-x 文件是可执行的返回真-eq 等于-ne 不等于-lt 小于-le 小于等于-gt 大于-ge 大于等于 123452*3+4|bc 计算前面的数据ping -w 2 www.163.com 测试2两次对上一次指令结果判断$?=0 为真$?=1 为假 给SHELL后边加参数 12345678XXXX=`echo | wc -c`cat $HOME/list/file.txt 1>/dev/null 2>/dev/nullOK=$?if [ "" = "" ] || [ "$XXXX" -lt "4" ] || [ "$OK" -ne "0" ]then echo "参数没有输入,输入位数不等于3,file.txt不存在,请重新输入"exitfi 一个循环检查 123456789line=1for i in `cat bb`doqq=`echo "scale=2;$i*100" | bc | awk -F. "{print }"`if [ "$qq" -ge "75" ]thensed -n "$line"p temp.1 >> bad.1filine=`expr $line + 1` ###每次加1