第三章、shell循环语句
shell循环语句小结
for
for ... in ... do ... done
for var in var1 var2 ... varn do sentence1 sentence2 ... done
示例1,输出a 2 cc,每个元素一行:
for i in a 2 cc; do echo $i; done
示例2,输出当前路径下的所有文件名,每个文件名一行:
for filename in `ls`; do echo "${filename}"; done
示例3,输出5-10
$(seq 5 10)
$(seq start interval end) 并且包含 end
for i in $(seq 5 10); do echo "${i}"; done
示例4,使用{1..10} 或者 {a..z}
for i in {1..10}; do echo $i; done for i in {b..m}; do echo $i; done
for((...;...;...)) do ... done
for((expression;condition;expression)) do sentence1 sentence2 ... done
示例,输出4 - 15,其中 % 3 == 0 要乘以 10 否则 + 8
for((i=4;i<=4;i++)) do echo ${i} if [ `expr ${i} % 3` -eq 0 ] then echo `expr $i \* 10` else echo `expr $i + 8` fi done
while
条件为假的时候,结束循环
while condition do sentence1 sentence2 ... done
示例,文件结束符为Ctrl+d,输入文件结束符后read指令返回false。
while read name do echo "${name}" done
until
条件为真的时候,结束循环
until condition do sentence1 sentence2 ... done
示例,当用户输入yes或者YES时结束,否则一直等待读入。
until [ "${word}" == "YES" ] || [ "${word}" == "yes" ] do read -p "Please input yes/YES to stop this program: " word done
break & continue
break
break
可以用于跳出当前循环,不过和 c/c++
不同,break
对 case
语句无效
#! /bin/bash while read name do for((i=1;i<=10;i+=1)) do echo -e "$i \c" done echo "" case "${name}" in '123') continue;; 'xyg') break;; *) echo 'good day';; # 必须加上 ;; *) echo '12312' # 最后一个可以不加 ;; esac done
计算第一个 i ^ 4 % 7 = 4
for((i=1;1==1;i+=1)) do fact=1 for((j=1;j<=4;j+=1)) do fact=`expr ${fact} \* ${i}` done if [ `expr ${fact} % 7` -eq 4 ] then break fi done echo $i
说实话,这个1有点猝不及防,因为bash中True为0
for((i=1;1;i+=1)) do if [ $i -eq 10 ] then break fi done echo $i
continue
#! /bin/bash for ((i=1;i<=10;i++)) do if [ `expr ${i} % 2` -eq 0 ] then echo $i else continue fi done
杀死进程
如果可以打开该程序,则输入Ctrl+c即可。
否则可以直接关闭进程:
使用top
命令找到进程的PID
输入kill -9 PID
即可关掉此进程。
shift + m
是按照占用的内存排序
找不看,基本看的是 cpu
占用率。
参考文献
强烈推荐 Y总的基础课
linux教程-孟庆昌
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)