shell之循环

字数 250

使用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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
0人点赞
每天进步一点点变成更好的自己  软件测试工程师、质量管理、过程改进、接口自动化测试
总资产186共写了31.6W字获得830个赞共413个粉丝

推荐阅读更多精彩内容