shell脚本之循环语句

一、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、操作

2.1取值列表的多种表示方法

2.2for循环可在同一行表示

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

2.4输出九九乘法表

for j in {1..9}
do
  for i in `seq $j`
  do
  echo -e "${i}*${j}=$[i*j] \t\c"
  done
  echo
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

posted @ 2022-10-24 11:19  龙Llong  阅读(95)  评论(0编辑  收藏  举报