shell中的循环语句


1. while循环

1.1 while read line

 用法1:command|whlie read line;do … done;
 注意点:管道符|,循环执行的语句都是子进程,子进程结束后,不修改全局变量

cat file|while read line;
do
...
done

 用法2:whlie read line;do … done < file;
 不含管道符,循环结束后,会修改全局变量

while read line;
do
...
done < file
1.2 while循环控制条件
  •  无限循环实例
while true;
do
        echo -e "$date1" >>$BIN_DIR/test.txt
        ping -c 100 10.10.10.1 >> $BIN_DIR/test.txt 2>&1
        sleep 3
done

  while true表示条件永远为真,会一直运行,这种我们称为守护进程

  •  计算1到100之间所有奇数之和
i=1;sum=0
while [[ $i -le  100 ]];
do
        sum=$[${sum}+${i}]
        i=$[$i+2]
done
echo "${sum}"

2. for循环

2.1 for循环条件1

for 变量名 in 变量取值列表
do
    指令………
done

  •  遍历文件
for file in `ls /etc/sysconfig`
do
        echo $file
done
2.2 for循环条件2

for ((exp1;exp2;exp3)); do
    指令…………
done

备注:exp1只执行一次

  •  计算1到100所有偶数之和
for ((i=0;i<=100;i+=2));
do
        sum=$[$sum+$i]
done
echo $sum
  • 结合seq命令读取文件指定行

    简单介绍seq命令

$ seq 1000 #起始默认是 1,间隔默认也是1
$ seq 2 1000 #间隔默认是1
$ seq 1 3 10 #从1到10,间隔为3,结果是:1 4 7 10
$ seq 5 5 #5

    读取文件1到7行

for i in `seq 1 7`;
do
	echo $i
done

3. until循环

until 循环条件
do
    指令…
done

  until是条件不满足就一直执行下面的指令,条件满足就会退出。
   提示:until应用场合不多,了解就行

4. select循环

select variable in list
do
    循环体命令
done

1、select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入
2、用户输入菜单列表中的某个数字,执行相应的命令
3、用户输入被保存在内置变量 REPLY 中(REPLY要大写)
4、select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 按 命令终止脚本
5、select 和 经常和 case 联合使用

  • 显示不同种类价格
select menu in 铅笔 水笔 毛笔 钢笔
do
    case $REPLY in
    1|2)
        echo "$menu price is 3$"
		;;
    3|4)
        echo "$menu price is 4$"
        ;;
    esac
    break
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值