while循环基本语法:
while <条件表达式> do 指令 done #注意代码缩进
util循环基本语法:
until <表达式> do 指令 done #与while的区别:不成立时进入循环,成立时终止循环
注意while条件表达式跟if的区别:if后的表达式是形如‘[ a -eq b ]‘这样的表达式,此时返回0为真,while后跟(( a < b)),返回1时为真。
# !/bin/bash sum=1000 i=15 while ((sum>i)) #正确 do ((sum=sum-i)) echo "The sum now is $sum" done echo "The money is less than $i pls add it"
# !/bin/bash sum=1000 i=15 while [ $sum -gt $i ] #错误的写法 do ((sum=sum-i)) echo "The sum now is $sum" done echo "The money is less than $i pls add it"
使用while按行读文件:
方法一:
exec <FILE sum=0 while read line do echo $line done
方法二:使用cat读文件
cat filePath | read line do cmd done
方法三:结尾重定向
while read line do cmd done<$1
for循环语法:
语法一:
for 变量名 in 变量取值列表 do cmd done
注意:"in 变量取值列表"可以省略,省略时相当于"in $@"
语法二(与C语言相识):
for((expr1;expr2;expr3)) do cmd done
例子:
for num in 5 4 3 2 1 do echo $num done
等同于
for num in {5..1} do echo $num done
批量更改当前目录下的文件名:
# !/bin/bash for n in `ls` do mv $n `echo $n|cut -d . -f1`.gif done
select 循环语句主要用来打印菜单
# !/bin/bash select name in tang jia pi 777 bear do echo $name done
in后面也可以接命令结果或者数组
原文:https://www.cnblogs.com/Shadowplay/p/9264052.html