相信大家已經對shell指令碼有一定的了解了,大家對於shell指令碼的條件判斷語句一定非常期待。本篇部落格,我們來聊一聊關於shell的條件判斷語句與迴圈。
[condition]
注意:
(1)兩個整數之間比較 = 字串比較
(2)按照檔案許可權進行判斷
(3)按照檔案型別進行判斷
23是否大於等於22 使用$?檢視結果為true返回0
[root@node01 shell]# [ 23 -ge 22 ]
[root@node01 shell]# echo $?
0檢視檔案具體的許可權 使用$?檢視結果為true返回0
[root@node01 shell]# [ -w helloword.sh ]
[root@node01 shell]# echo $?
0檢視某個目錄下的檔案是否存在 使用$?檢視結果為true返回0
[root@node01 shell]# [ -e /opt/shell/aa.txt ] --不存在
[root@node01 shell]# echo $?
1[root@node01 shell]# [ -e /opt/shell/helloword.sh ]
[root@node01 shell]# echo $?
0多條件判斷(&&表示前一條命令執行成功是,才執行後一條命令,||表示上乙個命令執行失敗後,才執行下一條命令)
[root@node01 shell]# [ condition ] && echo ok || echo notok
ok[root@node01 shell]# [ condition ] && [ ] ||echo notok
notoksvqiqnvnf
1.4.1 基本語法
if [條件判斷式];then
程式fi
或者if [ 條件判斷式 ]
then
程式fi #結束符
注意:
1.4.2 案例實操
輸入乙個數字,如果是1,則輸出我是張三,如果為2,則輸出我是李四,如果為其什麼不輸出。
[root@node01 shell]# vim if.sh
if [ $1 -eq '1' ]
then
echo '我是張三'
elif [ $1 -eq '2' ]
then
echo '我是李四' 程式設計客棧
fi[root@node01 shell]# sh if.sh 2
我是李四
[root@node01 shell]# sh if.sh 1
我是張三
[root@node01 shell]# sh if.sh 3
[root@node01 shell]#
1.5.1 基本語法
case $變數名 in
"值1")
程式1 ;;
"值2")
程式2 ;;
"值n")
程式n ;;
esac
注意事項:
1.5.2 案例實操
輸入乙個數字,如果是1,則輸出班長,如果是2,則輸出副班長,如果是其他,則輸出人妖。
[root@node01 shell]# vim case.sh
#!/bin/bash
case $1 in
'1')
echo '班長' ;;
'2')
echo '副班長' ;;
'*')
echo '人妖' ;;
esac
[root@node01 shell]# sh case.sh 1
班長[root@node01 shell]# sh case.sh 2
副班長[root@node01 shell]# sh case.sh 3
人妖2.1.1基本語法1
for ((初始值;迴圈控制條件;變數變化))
do 程式done
2.1.2 案例實操
從1加到100
**[root@node01 shell]# vim for1.sh
#!/bin/bash
num=0
for((i=0;i<=100;i++))
do num=$[$num+$i]
done
echo $num
[root@node01 shell]# sh for1.sh
5050
2.1.3基本語法2
for 變數 in 值1 值2 值3 ..
do 程式
done
2.1.4例項實操
列印所有輸入的引數
hie[root@node01 shell]# vim for2.sh
#!/bin/bash
for i in $*
do echo " i love $i "
done
[root@node01 shell]# sh for2.sh 張三 李四
i love 張三
i love 李四
$ *和$ @都表示傳遞給函式或指令碼的所有引數,不能被雙引號「」包含是,都以$ 1.$ 2…$ n的形式輸出所有引數。
[root@node01 shell]# vim for3.sh
#!/bin/basn
for i in $*
do echo " i love $i"
done
for j in $@
do echo " i love $j"
done
[root@node01 shell]# sh for3.sh 張三 李四 王五
i love 張三
i love 李四
i love 王五
i love 張三
i love 李四
i love 王五
當他們被雙引號「」包含時,「$*」會將所有的引數作為乙個整體,以$1,$2,3... 3...3...n的形式輸出所有引數;「$@會將各個引數分開,以「$1」,「$2」,「3 」 . . . . 「 3」....「3」....「n」的形式輸出所有引數。
[root@node01 shell]# vim for4.sh
#!/bin/bash
for i in "$*"
do echo " i love $i "
done
for j in "$@"
do e程式設計客棧cho " i love $j "
done
[root@node01 shell]# sh for4.sh 張三 李四 王五
i love 張三 李四 王五
i love 張三
i love 李四
i love 王五
3.2.1 基本語法
while [提交判斷式]
do 程式
done
3.2.2 案例實操
從1加到100
[root@node01 shell]# vim while.sh
#!/bin/bash
num=0
i=1while [ $i -le 100 ]
do num=$[$num+$i]
i=$[$i+1]
done
echo $num
[root@node01 shell]# sh while.sh
5050
shell指令碼快速入門之 陣列
四 陣列的操作 五 陣列指令碼例項 什麼是陣列?陣列是存放相同型別資料的集合,在記憶體中開闢了連續的空間,通常配合迴圈使用 普通陣列 不需要宣告直接定義,下標索引只能是整數 關聯陣列 需要用declare a宣告否則系統不識別,索引可以是字串 如 arr 11 22 33 44 陣列名稱 arr 陣...
Shell指令碼快速入門 1
shell 是乙個用 c 語言編寫的程式,使用者可以通過shell指令碼語言來進行程式開發。與其他指令碼語言不同,shell指令碼所需的直譯器一般是內建在作業系統的,而像node.js php等指令碼語言需要手動安裝直譯器程式才可以。接下來將和大家一起來學習shell指令碼程式設計。shell直譯器...
shell判斷false shell條件判斷
shell 開頭以sh字尾 開頭 注釋,表明採用何種直譯器 bin bash author cheonghu date 2020 05 06 desc shell demo abc檔案許可權 ll total 4 rw r r 1 root root 88 apr 24 22 15 demo.sh其...