第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Shell循环语句(for循环;while循环;until循环)及中断(break和continue)

Shell循环语句(for循环;while循环;until循环)及中断(break和continue)

时间:2024-06-27 09:12:23

相关推荐

Shell循环语句(for循环;while循环;until循环)及中断(break和continue)

Shell循环语句

for循环语句例题1:批量添加用户例题2:根据IP地址检查主机状态while循环语句例题1 猜价格游戏例题二:批量添加用户until循环语句例题:计算1~50的值中断(break和continue)①break②continueIFS字段分割符例题:输出环境变量PATH所包含的所有目录以及其中的所有可执行文件

for循环语句

读取不同的变量值,用来逐个执行同一组命令

for 变量名 in 取值列表do 命令序列done

遍历

for i in {1..10}或 $(seq 1 10)或 ((i=1; i<=10; i++))doecho $idone

for i in {1..10..2} 或 $(seq 1 2 10)或 ((i=1; i<=10; i++))doecho $idone

例题1:批量添加用户

①创建用户名的文件

②编写脚本

#!/bin/basha=$(cat name.txt)for i in adouseradd $iecho "123456" | passwd --stdin $idone

③验证

例题2:根据IP地址检查主机状态

#!/bin/bashfor i in 192.168.100.{1..20}doping -c 3 -i 0.5 -W 2 $i &> /dev/nullif [ $? = 0 ]thenecho "$i online"elseecho "$i offline"fidone

while循环语句

重复测试某个条件,只要条件成立则反复执行

while 条件测试操作do命令序列done

#!/bin/bashi=0while (($i <=10))doecho "$i"let i++done

例题1 猜价格游戏

#!/bin/bashprice=$[$RANDOM % 1000]a=0times=0echo "猜猜商品价格是多少"while [ $a -eq 0 ]dolet times++read -p "请输入你猜的价格:" bif [ $b -eq $price ];thenecho "yes!"let a++elif [ $b -gt $price ];thenecho "你猜大了!"elif [ $b -lt $price ];thenecho "你猜小了!"fidoneecho "你总共猜了 $times 次"

例题二:批量添加用户

#!/bin/bashi=0while [ $i -le 4 ]dolet i++useradd stu$iecho "123456" | passwd --stdin stu$idone

until循环语句

重复测试某个条件,只要条件不成立则反复执行

until 条件测试操作do命令序列done

#显示1-10的整数#!/bin/bashi=1until [ $i -gt 10 ]doecho "$i"let i++done

例题:计算1~50的值

#!/bin/bashi=1sum=0until [ $i -gt 50 ]dosum=$(($sum+$i))let i++doneecho "$sum"

中断(break和continue)

①break

break跳出单个循环

#!/bin/bashfor i in {1..5}doecho "外层循环 $i"for b in {1..5}doif [ $b -eq 3 ]thenbreakfiecho "内层循环 $b"donedone

②continue

continue中止某次循环中的命令,但不会完全中止整个命令

#!/bin/bashfor i in {1..5}doecho "外层循环 $i"for b in {1..5}doif [ $b -eq 3 ]thencontinuefiecho "内层循环 $b"donedone

IFS字段分割符

默认包含空格,制表符,换行符

1.修改IFS=$'\t\n'修改成只换行IFS=$'\n'IFS=':'IFS=','2.备份IFS. OLD=$IFSIFS=$'\n'...IFS=$IFS.OLD

例题:输出环境变量PATH所包含的所有目录以及其中的所有可执行文件

#!/bin/bashOLDIFS=$IFSIFS=':'for i in $PATHdofor a in $i/*doif [ -x $a -a -f $a ];thenecho "$a 文件有执行权限"fidonedoneIFS=$OLDIFS

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。