使用for循环遍历命令的执行结果
for 循环的语法:
for 参数 in 列表
do 执行的命令
done 封闭一个循环
实际例子:
for i in {1..9}
do echo $i
done
实际例子,替换.mp3转换为.mp4
for filename in 'ls *.mp3'
do mv $filename $(basename $filename .mp3).mp4
done
使用反引号或者$() 方式执行命令,命令的结果当作列表进行处理
使用for循环遍历变量和文件的内容
列表中包含多个变量,变量用空格分隔
对文本处理,要使用文本查看命令取出文本内容
默认逐行处理,如果文本出现空格会当作多行处理
C语言风格的for命令
for((变量初始化;循环判断条件;变量变化))
do
循环执行的命令
done
实际例子:
for(( i=1;i<=10;i++))
do
echo $i
done
while循环
while test测试是否成立
do
命令
done
实际例子:
a = 1
while [ $a -lt 10 ]
do
((a++))
echo $a
done
死循环
while test测试一直成立
do
命令
done
实际例子:
while :
do
echo always
done
until循环
until 循环与while循环相反,循环测试为假时,执行循环,为真时循环停止
实际例子:
until :
do
echo always
done
break和continue语句
循环的使用:
- 循环和循环可以嵌套
- 循环中可以嵌套判断,反过来也可以嵌套
- 循环可以使用break 和continue语句在循环中退出
break :退出整个for循环
for i in {1..9}
do
if [ $i -eq 5 ] then break
fi
echo $i
done
continue:退出当前循环
for i in {1..9}
do
if [ $i -eq 5 ] then continue
fi
echo $i
done
使用循环对命令行参数的处理
命令行参数可以使用$1 $2 ....${10}...$n
进行读取
$0
:代表脚本名称
$* 、$@
:代表所有位置参数
$#
:代表位置参数的数量
for i in $*
do
if [ "$i" = "help" ] then
echo $i
fi
done
while [ $# -ge 1 ]
do
if [ "$1" = "help" ] then
echo $1 $1
fi
done