linux循环脚本while循环,shell脚本之循环语句for,while,until用法的详解

关于Linux中循环语句for,while,until用法的详解

for,while,until这些循环结构体在Linux的script中是使用非常多的,所以掌握他们的用法是很必要的,以下是我整理的关于这三个命令的一些用法,希望对需要的人有帮助。

一、for循环

结构一 :

for 变量 in 列表 ; do

循环体

done

结构二:

for ((expr1;expr2;expr3)); do

循环体

done

练习提高:

1、计算1-10的和sum;

结构一:

#!/bin/bash

declare -i sum=0

for i in `seq 1 10`

do

let sum=$sum+$i

done

echo $sum

结构二:

#!/bin/bash

declare -i sum=0

for ((i=0;i<=10;i++))

do

sum+=$i

done

echo $sum

2、计算1-1000的和sum;

#!/bin/bash

declare -i sum=0

for i in {1..1000}

do

sum+=$i

done

echo $sum

3、  写一个脚本:

(1)、设定变量FILE的值为/etc/passwd

(2)、依次向/etc/passwd中的每个用户问好,并显示对方的shell,形如:

Hello, root, your shell: /bin/bash

(3)、统计一共有多少个用户

(4)、只向默认shell为bash的用户问声好

#!/bin/bash

line=`wc -l /etc/passwd | awk '{print $1}'`

for i  in `seq 1 $line`

do

echo "Hello, ` head -n $i /etc/passwd |tail -1 | awk -F : '{print $1}'`, your shell: `head -n $i /etc/passwd |tail -1 | awk -F : '{print $7}'` "

done

echo "system have $line user。"

line1=`grep "bash$" /etc/passwd | wc -l`

for i in `seq 1 $line1`

do

echo  "Hello, `grep "bash$" /etc/passwd | head -n $i | tail -1 | awk -F: '{print $1}'`"

done

4、写一个脚本:

计算100以内所有能被3整除的正整数的和;

#!/bin/bash

declare -i sum=0

for i in `seq 1 100`

do

if [ $[$i%3] -eq 0 ]

then

sum+=$i

fi

done

echo $sum

~

二、while循环

while循环适用于循环次数未知的场景,要有退出条件。

进入循环:条件满足

退出循环:条件不满足

用法:

while condition  ; do

循环体

done

练习提高:

1、计算100以内所有正整数的和sum;

66f6a0a2a1ab753e219e93fb3b70092e.png

2、 连续转换输入的字符,小写变大写,当输入quit时exit

fccf44085cc25a10b36c39f187405115.png

3、 每5秒钟检测hadoop用户是否登录,并显示登录的时间25a14bfe7e4205ea1284e9c9f8ccff28.png

三、until循环

until的用法其实是跟while差不多的,只是在条件满足上有所不同。

进入循环:条件不满足

退出循环: 条件满足

用法:

until condition ; do

循环体

done

练习提高:

1、计算100以内所有正整数的和sum;

343623dbc368722790a5989d076613db.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值