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;
2、 连续转换输入的字符,小写变大写,当输入quit时exit
3、 每5秒钟检测hadoop用户是否登录,并显示登录的时间
三、until循环
until的用法其实是跟while差不多的,只是在条件满足上有所不同。
进入循环:条件不满足
退出循环: 条件满足
用法:
until condition ; do
循环体
done
练习提高:
1、计算100以内所有正整数的和sum;
转载于:https://blog.51cto.com/luzhi1024/1534176