歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Shell腳本編程入門(1)條件判斷

Shell腳本編程入門(1)條件判斷

日期:2017/3/3 11:28:54   编辑:SHELL編程

條件判斷

條件測試的表達式:

[ expression ] #注意expression的兩邊一定要有一個空格,否則會報語法錯誤。

[[ expression ]] #注意expression的兩邊一定要有一個空格,否則會報告語法錯誤。

test expression

命令的間邏輯關系:

邏輯與: && 或者-a

第一個條件為假時,第二條件不用再判斷,最終結果已經有;

第一個條件為真時,第二條件必須得判斷;

邏輯或: || 或者-o

例如:

如果用戶user6不存在,就添加用戶user6

! id user6 && useradd user6

id user6 || useradd user6

控制語句的結構

單分支if語句

if 判斷條件; then

statement1

statement2

...

fi

雙分支的if語句:

if 判斷條件; then

statement1

statement2

...

else

statement3

statement4

...

fi

多分支的if語句:

if 判斷條件1; then

statement1

...

elif 判斷條件2; then

statement2

...

elif 判斷條件3; then

statement3

...

else

statement4

...

fi

條件判斷的類型分為三種

整數測試

-eq: 測試兩個整數是否相等;比如 $A -eq $B

-ne: 測試兩個整數是否不等;不等,為真;相等,為假;

-gt: 測試一個數是否大於另一個數;大於,為真;否則,為假;

-lt: 測試一個數是否小於另一個數;小於,為真;否則,為假;

-ge: 大於或等於

-le:小於或等於

一個例子:

INT1=63

INT2=77

[ $INT1 -eq $INI2 ]

[[ $INT1 -eq $INT2 ]]

test $INT1 -eq $INT2

文件測試:

-e FILE:測試文件是否存在

-f FILE: 測試文件是否為普通文件

-d FILE: 測試指定路徑是否為目錄

-r FILE: 測試當前用戶對指定文件是否有讀取權限;

-w ...寫權限

-x ...執行權限

一個例子

[ -e /etc/inittab ]

[ -x /etc/rc.d/rc.sysinit ]

字符測試

字符測試:

==:測試是否相等,相等為真,不等為假

注意:等號的兩邊必須有空格!!!!否則會報語法錯誤

!=: 測試是否不等,不等為真,等為假

>

<

-n string: 測試指定字符串是否為空,空則真,不空則假

-z string: 測試指定字符串是否不空,不空為真,空則為假

本文出自 “厚積薄發” 博客,請務必保留此出處http://joedlut.blog.51cto.com/6570198/1826298

Copyright © Linux教程網 All Rights Reserved