shell 指令碼之if for while語句

2021-09-07 04:32:59 字數 2265 閱讀 2204

(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

do echo $char

done

for int in

do echo $int

done

執行結果:

root@ubuntu:/mnt/shared/shellbox/shellfor# ./shellfor.sh ab

c123

(3)while語句:

root@ubuntu:/mnt/shared/shellbox/shellwhile# cat shellwhile.sh 

#!/bin/bash

#注意: (( ))這樣的方式僅僅能在bash中使用,而不能在sh中使用

i=0while (( 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=0i=1

i=2i=3

i=4num=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 ...

shell 指令碼之for

subdir joan joanna for subdir in subdir doecho building subdir done 結果 building joan building joanna 結果正常。subdir 1 2 3 4 for subdir in subdir doecho b...

Shell指令碼程式設計基礎之shell指令碼退出狀態碼

exit 在指令碼中本身是退出的作用 根據程式執行的結果,返回對應的狀態碼,幫助實現條件判斷 21 15 48 root c8 3 55 grep q root etc passwd echo grep q admin etc passwd echo grep q root abc echo gre...

Shell指令碼程式設計基礎之shell指令碼條件測試命令

注意 表示式前後必須有空白字元 05 19 35 root c8 3 55 help test test test 表示式 對條件表示式進行估值。根據 expr 表示式的估值以狀態 0 真 或 1 偽 退出。表示式可以是一元或者二元的。一元表示式通常用於檢測 檔案狀態。同時還有字串操作符和數字比較操...