根據條件從而跳過某些命令.其語法格式為:
if command
then
command
fi#結束語句
如果command命令的狀態執行碼為0,那麼將會執行then後面的語句,否則將不會執行.
if-else-then
語句,語法格式為:
if command
then
command
else
command
fi 另外一種形式為:
if command1
then
commands
elif commands
then
more commands
fi 如果狀態執行碼為0,那麼就會執行then後面的命令.如果狀態執行碼為正數,那麼就會跳轉到elif語句.繼而判斷command命令執行後的狀態執行碼,若為0,則執行then後面的命令.
test命令:test命令測試會返回狀態執行碼.語法格式為test condition
.在if-else
語句中使用test命令,其語法格式如下:
if test condition
then
command
fi 看如下**,
#!/bin/bash
my_variable=」full」
if test my
vari
able
then
echo
「the
my_variable expression returns a true」
else
echo 「the $my_variable expression return a false」
fi test命令可以用在三模擬較中,數值比較,字串比較,檔案比較. 比較
描述n1 -eq n2
檢查n1是否等於n2
n1 -ge n2
檢查n1是否大於或者等於n2
n1 -gt n2
檢查n1是否大於n2
n1 -le n2
檢查n1是否小於或者等於n2
n1 -lt n2
檢查n1是否小於n2
n1 -ne n2
檢查n1是否不等於n2
- 字串比較:
- | 比較 | 描述 |
|——–|——–|
|str1 =str2 | 檢查str1和str2是否相等|
|str1 != str2 |檢查str1與str2不同 |
| str1 < str2|檢查str1是否比str2小|
|str1 > str2|檢查str1是否比str2大|
|-n str|檢查str的長度是否非0|
|-z str|檢查str的長度是否為0|
在使用大小比較時,需要對》和《進行轉義,不然會當成重定向輸出.
- 檔案比較
比較描述
-d file
檢查檔案是否存在並是乙個目錄
-e file
檢查檔案是否存在
-f file
檢查file是否存在並是乙個檔案
-r file
檢查file是否存在並可讀
-s file
檢查file是否存在並非空
-w file
檢查file是否存在並可寫
-x file
檢查file是否存在並可執行
看如下**:
if [ -e lo
cati
on]t
hene
cho「
okon
the location directory」
echo 「now checking on the file ,fi
lena
me」i
f[−e
location/fi
lena
me]t
hene
cho「
okon
thef
ilen
ame」
echo
「upd
atin
gcur
rent
date
…」da
te>>
location/fi
lena
meel
seec
ho「f
iled
oesn
otex
ist」
echo
「not
hing
toup
date
」fie
lsee
cho「
the location directory does not exist」
echo 「nothing to update」
fi 3. 符合條件測試:其命令格式為:
[ condition1 ] && [ condition2 ]
[ condition1 ] || [ condition2 ]
4.case命令:其命令格式為:
case variable in
pattern1|pattern2)command;;
pattern3) command;;
pattern) command;;
default command;;
esac
看以下**:
#!/bin/bash
#using the case command
case us
erin
ctw|
barb
ara)
echo
「wel
come
, user」
echo 「please enjoy your visit」;;
testing)
echo 「special testing account」;;
jessai)
echo 「do not forget to log off when you』re done」;;
*) echo 「sorry,you』re not allowed here」;;
esac
5. if-else高階特性:
- 使用雙括號:其格式為(( expression )),雙括號中的大於小於符號不需要進行轉義
- 使用雙方括號:[[ expression ]],針對於字串比較.
linux結構化命令 for迴圈
for迴圈命令基本格式 for var in list do commonds done 測試指令碼 執行結果如下 讀取列表中的複雜值 修改test3.sh如下,執行結果如下 如上可以看到,第二次迴圈的時候,列印的字沒有分割開,而是多個單詞 dont know thisll 而且單引號也沒有了。這是...
shell指令碼結構化之迴圈命令
迴圈是程式設計的乙個重要部分,bash shell提供了三種可用於指令碼中的循壞命令 for 命令 while命令 until 命令 這些都沒有好講的,注意下格式就行了,看兩個例項 bin bash ifs for folder in path doecho folder forfile in fo...
shell指令碼的結構化條件判斷命令
程式可以說就是結構化加上演算法,現在就來講講shell指令碼的結構化命令 結構化命令允許你改變shell指令碼的正常執行流。最基本的結構化命令是if then語句。也可以擴充套件if then語句,加入if then else語句。如果希望在測試失敗時加上額外的測試,if then elif語句。i...