shell脚本简单例子

eg: 

Expect:

1.用环境变量RANDOM随机生成一个100以内的随机数

2.read读取当前输入

3.当前输入对比随机生成的数

4.当两个数相等时跳出苏循环,并计数(比较n次结果才相等)

 1 #!/bin/bash
 2 i=0
 3 num=$(expr $RANDOM % 100)
 4 echo $num
 5 while true
 6 do
 7         let i++
 8         read -p "Please input number(1-100):" digit
 9         if [ $digit -eq $num ]; then
10                 echo $digit
11                 echo "一共$i 次!!"
12                 break
13         elif [ $digit -lt $num ]; then
14                 echo "The number is less!"
15         elif [ $digit -gt $num -o $digit -gt 100 ]; then
16                 echo "The number is bigger"
17         #elif [ $digit -gt 100 ]; then
18         #       echo "not in the range!! Please reinput."
19         else
20                 continue
21         fi
22 done

eg: 

复习简单实例 ,    简单输入n次要取得值,最后打印出获得的所有值

 1 #!/bin/bash
 2 attr=()
 3 num=0
 4 while true
 5 do
 6         read -p ">>input:" name
 7         attr[$num]=$name
 8         echo ${attr[$num]}
 9         let num++
10         if [ $num -eq 3 ]; then
11                 echo ${attr[*]}
12                 exit
13         fi
14 done

eg:for循环

eg:continue和break的区别 

  continue结束本次循环,进行下一次循环

  break跳过本次循环

 1 #!/bin/bash
 2 for i in `seq 10`
 3 do
 4         if [ $i -eq 3 ]; then
 5                 continue
 6         else
 7                 echo $i
 8         fi
 9 done
10 
11 #!/bin/bash
12 int=0
13 while :
14 do
15         let int++
16         if [ $int -lt 10 ]; then
17                 echo $int
18         else
19                 break
20         fi
21 done
22 ====================
23 for循环的用法
24 #!/bin/bash
25 for ((a=1;a<10;a++))
26 do
27         echo $a
28 done
29 ====================
30 嵌套循环
31 #!/bin/bash
32 for ((a=0;a<10;a++))
33 do
34         echo "outer loop: $a"
35         for ((b=1;b<10;b++))
36         do
37                 if [ $b -eq 4 ]; then
38                         continue
39                 else
40                         echo "inner loop: $b"
41                 fi
42         done
43 done
44 ====================

猜你喜欢

转载自www.cnblogs.com/security-guard/p/11961571.html