while循环
结束标志控制while循环
基本语法:
read variable
while [[ “$variable” != sentinel ]]
do
read variable
done
脚本例子:猜1-10内的数字
1 #!/bin/bash
2
3 echo "please input the num(1-10):"
4 read num
5 while [[ "$num" != 4 ]] #如果等于4就结束
6 do
7 if [ "$num" -lt 4 ]
8 then
9 echo "too small,try again"
10 read num
11 elif [ "$num" -gt 4 ]
12 then
13 echo "too high,try again"
14 read num
15 else
16 exit 0
17 fi
18 done
19
20 echo "you are right"
~
计数器控制的while 循环
基本形式:
counter = 1
while expression
do
command
...
let command to operate counter
command
...
done
脚本例子:显示1-5
1 #!/bin/bash
2 int=1
3 while (( "$int" <= 5 ))
4 do
5 echo "$int"
6 let "int++"
7 done
标志控制while循环
基本语法:
signal=0
while (( signal != 1 ))
do
...
if expression
then
signal=1
fi
...
done
脚本例子:循环求和(1...n)
1 #!/bin/bash
2 echo "please input the num:"
3 read num
4 sum=0
5 i=1 #循环变量1
6 signal=0 #初始化标志值
7 while [[ "$signal" != 1 ]]
8 do
9 if [ "$i" -eq "$num" ]
10 then
11 let "signal = 1"
12 let "sum += i"
13 echo "1+2+3+4...+$num=$sum"
14 else
15 let "sum = sum+i"
16 let "i++"
17 fi
18 done
19
命令控制的while循环
基本形式
while [[ “$*” != “” ]]
do
echo “$1”
shift
done
脚本例子:
1 #!/bin/bash
2 #
3 echo "number of agrument is $#" #输入参数个数
4 #
5 echo "what you input:"
6 while [[ "$*" != "" ]]
7 do
8 echo "$1"
9 shift
10 done
#该脚本是把while 和shift 结合起来,shift 命令使位置变量下移一位(即$2代替$1,$3代替$2),并且使$#变量递减,当最后一个参数也显示给用户后,$#就会等于0,同时$*也会等于空.