伊邪那岐!——Shell编程之循环语句


for循环语句

for循环是一个遍历的过程

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

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

while循环语句

重复测试某个条件,只要条件成立就反复执行,直到条件不成立结束循环。

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

示例

vim caishu.sh
#!/bin/bash

a=$[$RANDOM % 100]
b=0
while [ $b -lt 1 ]
  do
  read -p "猜猜数字是多少?"i
  if [ $i -lt $a ]
    then
      echo "猜小了,再来一次。"

  elif [ $i -gt $a ]
      then
        echo "猜大了,再来一次。"

  elif [ $i -eq $a ]
      then
        echo "太棒了,猜对了"
        b=2
  fi
done

运行脚本

[root@localhost ~]# sh caishu.sh
猜猜数字是多少?50
猜大了,再来一次。
猜猜数字是多少?25
猜大了,再来一次。
猜猜数字是多少?15
猜大了,再来一次。
猜猜数字是多少?10
猜大了,再来一次。
猜猜数字是多少?5
猜大了,再来一次。
猜猜数字是多少?3
猜大了,再来一次。
猜猜数字是多少?1
猜小了,再来一次。
猜猜数字是多少?2
太棒了,猜对了

until循环语句

重复测试某个条件,只要条件不成立就反复执行,直到条件成立结束循环。(与while循环语句相反)

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

echo转义符

echo-n 表示不换行输出

echo-e 输出转义字符,将转义后的内容输出到屏幕上

常用的转义字符如下:
\b:转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符; "\b“表示删除前一个字符,”\b\b"表示删除前两个字符。

\c:不换行输出,在"\c“后面不存在字符的情况下,作用相当于echo -n;但是当”\c“后面仍然存在字符时,”\c"后面的字符将不会被输出。

\n:换行,被输出的字符从"\n"处开始另起一行。

\f:换行,但是换行后的新行的开头位置连接着上一行的行尾;

\v:与\f相同;

\t :转以后表示插入tab,即横向制表符;

\r:光标移至行首,但不换行,相当于使用"\r“以后的字符覆盖”\r“之前同等长度的字符;但是当”\r"后面不存在任何字符时,"\r" 前面的字符不会被覆盖

\\:表示插入"\"本身;

break

break跳出单个循环

示例:

[root@localhost ~]# vim xunhuan.sh
#!/bin/bash
for ((a=1; a<=5; a++))
do
    echo "outer loop: $a"
    for ((b=1; b<=50; b++))
    do
        if [ $b -eq 5 ]
        then
            break
        fi
        echo "inter loop: $b"
    done
done

运行脚本:

[root@localhost ~]# sh xunhuan.sh
outer loop: 1
inter loop: 1
inter loop: 2
inter loop: 3
inter loop: 4
outer loop: 2
inter loop: 1
inter loop: 2
inter loop: 3
inter loop: 4
outer loop: 3
inter loop: 1
inter loop: 2
inter loop: 3
inter loop: 4
outer loop: 4
inter loop: 1
inter loop: 2
inter loop: 3
inter loop: 4
outer loop: 5
inter loop: 1
inter loop: 2
inter loop: 3
inter loop: 4

continue

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

[root@localhost ~]# vim shulie.sh
#!/bin/bash
for ((a=1; a<=15; a++))
do
    if [ $a -ge 5 ] && [ $a -le 10 ]
    then
        continue
    fi
    echo "current value: $a"
done

运行脚本:

[root@localhost ~]# sh shulie.sh
current value: 1
current value: 2
current value: 3
current value: 4
current value: 11
current value: 12
current value: 13
current value: 14
current value: 15

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值