Linux学习之shell script(二)

  1. 使用case..in..esac做判断

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
read -p "Please make a choice:" choice
case $choice in
"one")
    echo "Your choice is one";;
"two")
    echo "Your choice is two";;
"three")
    echo "Your choice is three";;
*)
    echo "Usage $0{one|two|three}";;
esac

2.while..do..done循环

1
2
3
4
5
6
read -p "Please guess a word:" yn
while "$yn" != "yes" -a "$yn" != "YES" ]
do 
   read -p "Wrong!guess again:" yn
done
   echo -e "OK,you guess right!"

3.until..do..done循环

1
2
3
4
5
until "$yn" == "yes" -o "$yn" == "YES" ]
do
   read -p "Please guess a word:" yn
done
   echo -e "OK,you guess right!"

4.使用while循环计算1到n的总和

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
read -p "Please input a number:" n
i=0
s=0
while "$i" != "$n" ]
do
   i= $(($i+1))
   s= $(($s+$i))
done
   echo -e "The total from 1 to $n is $s"

 

5.使用for..do..done循环(已知要进行的循环)

1
2
3
4
for animal in cat dog pig
do
    echo -e "There are ${animal}"
done

 

6.使用for..do..done抓取每个账户的id

1
2
3
4
5
users=$(cut -d ':' -f1 /etc/passwd)
for username in $users
do 
    id $username
done

 

7.使用ping测试连续网段主机连通性

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
network="10.64.1"
for sitenu in $(seq 1 100)
do
   ping -c 1 -w 1 ${network}.${sitenu} &>/dev/null && result=0||result=1
if "$result" == 0 ];
then
   echo -e "Server ${network}.${sitenu} is UP."
else
   echo -e "Server ${network}.${sitenu} is DOWN"
fi
done
posted @ 2017-05-03 16:54  enginex  阅读(166)  评论(0编辑  收藏  举报