(1)if语句
root@ubuntu:/mnt/shared/shellbox/shellif# cat shellif.sh #!/bin/bash #推断字符串 if [ "$1" = "hello" ] then echo "$1=$1" fi #推断数字,if()方式仅仅能在bash下用,在sh下不行 if (( $1 > 20 )) then echo "$1: $1 > 20" elif (( $1 == 20 )) then echo "$1 == 20" elif (( $1 < 20 )) then echo "$1 < 20" fi #方括号推断语句 if [ $1 -lt 20 ] then echo "$1 < 20" elif [ $1 -ge 20 -a $1 -le 30 ] then echo "$1 >= 20 && $1 <= 30 " elif [ $1 -gt 30 ] then echo "$1 > 30" fi
运行结果:
root@ubuntu:/mnt/shared/shellbox/shellif# ./shellif.sh 10
$1 < 20
$1 < 20
root@ubuntu:/mnt/shared/shellbox/shellif# ./shellif.sh 20
$1 == 20
$1 >= 20 && $1 <= 30
root@ubuntu:/mnt/shared/shellbox/shellif# ./shellif.sh 30
$1: 30 > 20
$1 >= 20 && $1 <= 30
root@ubuntu:/mnt/shared/shellbox/shellif# ./shellif.sh 40
$1: 40 > 20
$1 > 30
(2)for语句
root@ubuntu:/mnt/shared/shellbox/shellfor# cat shellfor.sh #!/bin/bash for i in $* do echo $i done for char in {a..c} do echo $char done for int in {1..3} do echo $int done
运行结果:
root@ubuntu:/mnt/shared/shellbox/shellfor# ./shellfor.sh
a
b
c
1
2
3
(3)while语句:
root@ubuntu:/mnt/shared/shellbox/shellwhile# cat shellwhile.sh #!/bin/bash #注意: (( ))这样的方式仅仅能在bash中使用,而不能在sh中使用 i=0 while (( i < $1 )) do echo "i=$i" let i+=1 done #赋值时"="前后不能有空格 num=0 while [[ $num != $1 ]] do echo "num=$num, num != $1" let num+=1 done while true do echo "here in while true ..." sleep 2 done运行结果:
root@ubuntu:/mnt/shared/shellbox/shellwhile# ./shellwhile.sh 5
i=0
i=1
i=2
i=3
i=4
num=0, num != $1
num=1, num != $1
num=2, num != $1
num=3, num != $1
num=4, num != $1
here in while true ...
here in while true ...