shell基础语法:循环for in 和while

参考:

https://blog.csdn.net/wzj_110/article/details/86669426(for in 用法总结)

 

循环for in,基于列表 

语法:

for 变量名  in  列表
do
    command
    command
    ...
done

数字类循环

1,seq在in后面的应用

#!/bin/bash  
#也是产生等差数列-->默认是1
for i in $(seq 1 10)  #产生的是一个字符串,默认IFS是以空格隔开!
do   
   
done 

2,{}在in后面的应用

total=0 #全局变量
for i in {1..100} #".."表示连续,默认也是IFS为空格隔开
  do
    ((total+=i))
  done
echo -e "total is:${total}"

 

字符类循环

1,普通字符串

复制代码
#!/bin/bash  
list="Linux Java C++ Python"  
for i in $list  
do  
    echo -e "Language is ${i}"   
done 

补充:
echo -n //不换行输出
echo -e  //处理特殊字符输出 参考:https://blog.csdn.net/qq_37595946/article/details/77962963
复制代码

2,cat在in后面的使用

逐行读取文件的内容(默认是IFS),所以默认不是逐行打印!

IFS的说明

bash shell会将下列字符当作字段分隔符:空格、制表符、换行符
说明:如果在shell在数据中看到这些字符中的任意一个,它就会假定这表明了列表中一个新数据字段的开始!
可以指定多个IFS字符

如果想逐行原样输出

复制代码
#!/bin/bash
# reading content from a file
file="日志文件.sh"
#将这个语句加入到脚本中,告诉bash shell在数据值中忽略空格和制表,使其只能识别换行符!
IFS=$'\n'
for std in $(cat $file)
do
     echo "$std"
done
复制代码

3,路径查找

ls在in后面的命令

#!/bin/bash  
for i in `ls`;  #ls可以结合统配符应用!
do   
    echo $i is file name\!;  #注意:\的应用!
done  

 

循环while,基于条件

语法

复制代码
while condition
do
    command
done

#无线循环
while :
do
    command
done

while true
do
    command
done

for (( ; ; ))
复制代码

跳出循环

复制代码
#跳出后续所有循环
break 

#只跳出单次循环
continue 

#添加次数
break 2
continue 2
复制代码

 

posted @   指令跳动  阅读(377)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示