流程控制語句
一、if語句
1.語法
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
寫成一行(適用于終端命令提示符):
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
1
2.舉例
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "a 等于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo " a 大于 b"
fi
輸出
[root@hadoop-node01 ~]# . s8.sh
a 小于 b
注意
[ condition ] (注意condition前后要有空格)
二、case語句
Shell case語句為多選擇語句。可以用case語句匹配一個值與一個模式,如果匹配成功,執行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
舉例
#!/bin/bash
case $1 in
start)
echo "開始執行了..."
;;
stop)
echo "執行完成...."
;;
*)
echo "其他操作"
esac
輸出:
[root@hadoop-node01 ~]# vim s9.sh
[root@hadoop-node01 ~]# . s9.sh
其他操作
[root@hadoop-node01 ~]# . s9.sh start
開始執行了...
[root@hadoop-node01 ~]# . s9.sh stop
執行完成....
取值后面必須為單詞in,每一模式必須以右括號結束。取值可以為變量或常數。匹配發現取值符合某一模式后,其間所有命令開始執行直至 ;;
三、循環語句
1.for循環
for循環一般格式為
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
寫成一行
for var in item1 item2 ... itemN; do command1; command2… done;
舉例
#!/bin/bash
for i in 1,2,3,4
do
echo $i
done
echo "------1------"
for i in {1..5}
do
echo $i
done
echo "------2----"
for a in {1..5} ; do echo $a; done;
echo "-----3------"
for((i=0;i<10;i++))
do
echo $i
done
echo "-----4-----"
for((i=0;i<5;i++)); do echo $i ;done;
輸出:
[root@hadoop-node01 ~]# . s10.sh
1,2,3,4
------1------
1
2
3
4
5
------2----
1
2
3
4
5
-----3------
0
1
2
3
4
5
6
7
8
9
-----4-----
0
1
2
3
4
break和continue關鍵字
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then
break;
fi
echo $i
done
echo "-------------"
for i in {1..10}
do
if [ $i -eq 5 ]
then
continue
fi
echo $i
done
輸出
[root@hadoop-node01 ~]# . s11.sh
1
2
3
4
-------------
1
2
3
4
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2.where循環
while循環用于不斷執行一系列命令,也用于從輸入文件中讀取數據;命令通常為測試條件。
while condition
do
command
done
舉例
#!/bin/bash
i=1
while(( $i<=5))
do
echo $i
let i++
done
使用中使用了 Bash let 命令,它用于執行一個或多個表達式,變量計算中不需要加上 $ 來表示變量
無限循環
while :
do
command
done
三、read語句
語法
read -p(提示語句)-n(字符個數) -t(等待時間 單位秒)
案例
[root@hadoop-node01 ~]# read -p 請輸入密碼: -n 10 -t 10 password
請輸入密碼:123456
[root@hadoop-node01 ~]# echo $password
123456
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。