shell编程之循环语句

文章详细介绍了Linuxshell中echo命令的用法,包括不换行输出、转义字符及其作用,如退格、制表符等。同时,讲解了for和while循环的语法结构及实例应用,如遍历操作和条件判断。文章还提到了until循环作为while循环的反向操作,并给出了计算1-50和的示例。
摘要由CSDN通过智能技术生成

一、echo的用法

1、echo -n 表示不换行输出

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

常见的转义字符有:

2.1 \b 相当于退格键

转义后相当于退格键(backspace),但是前提是“\b”存在字符。“\b”表示删除前一个字符,“\b\b”表示删除前面两个字符

2.2 \c 不换行输出

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

2.3 \n 换行输出

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

2.4 \f 、\v 换行输出

换行输出,但是换行后新行的开头位置连接着上一行的行尾

2.5 \t 制表符显示

转义后表示插入横向制表符,即tab

2.6 \r 光标移至行首不换行

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

2.7 \\ 表示符号本身

在转义符前面加入转义符,代表将后面的转义符转义为符号本身,也就是 \

二、for循环(遍历)

1、 格式

for  变量名  in  取值列表
do
    命令序列
done
for i in {1..10}         {1..10..2}
 
for i in $(seq 1 10)     $(seq 1 2 10)
 
for ( (i=1; i<=10; i++) )  ( (i=1; i<=10; i+=2) )
do
   echo  $i
done
 
for ( (i=1; i<=10; i++)) ;do echo $i ;done   

2、 实例操作一

取值列表的多种表示方法


  
for循环可在同一行表示

for循环中,do done的相同作用的表示方法

4、 实例操作三:根据IP地址检查主机状态

#!/bin/bash
#Check host status based on IP address
 
for i in `cat /root/ipadds.txt`
do
  ping -c 3 -i 0.5 -w 2 $i &> /dev/null
  if [ $? -eq 0 ];then
     echo "$i is online"
  else
     echo "$i is offline"
  fi
done

三、while循环(迭代)

while循环可以不断的执行某个程序,直到用户设置的条件完成为止,所以重点是条件,这种不定循环最常见的就是下面这两种格式了。

1.格式:

while循环:while的中文是【当…时】,所以这种方式说的是,当判断式/命令序列的条件成立时,就进行循环,直到命令序列/程序段落的条件不成立才停止。

while  [ 条件测试操作 ]
do                      #do代表循环的开始
    判断式/命令序列
done                    #done代表循环的结束

 

2、实例操作:猜价格游戏,要求在0-999数字范围内猜价格,并有提示信息,统计最终猜测的次数

#!/bin/bash
a=0
b=1
price=$[RANDOM%1000]
while [ $a -eq 0 ]
do
read -p "请输入:" c
if [ $c -eq $price ];then
  echo "答对了,共答了 $b 次"
  a=2
elif [ $c -lt $price ];then
  echo "猜低了"
  let b++
elif [ $c -gt $price ];then
  echo "猜高了"
  let b++
fi
done

  

四、until循环

这种方式恰恰和while循环相反,它指的是当判断式/命令序列的条件成立时,就终止循环,否则就会持续循环程序段落。

1、格式

until  [ 条件测试操作 ]
do
    判断式/命令序列
done

2、实例操作一:计算1-50的和

#!/bin/bash
 
a=1
b=0
until [ $a -gt 50 ]
do
   b=$(($b+$a))
 
   let a++
done
   echo "得出的和为:$b"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值