shell學習之二

shell學習之二

shell 中| && || () {} 用法以及shell的邏輯與或非

1、&& 運算符:

格式

command1  && command2

&&左邊的命令(命令1)返回真(即返回0,成功被執行)後,&&右邊的命令(命令2)才能夠被執行;換句話說,“如果這個命令執行成功&&那麼執行這個命令”。 語法格式如下:

command1 && command2 && command3 ...
  1. 命令之間使用 && 連接,實現邏輯與的功能。

  2. 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令纔會被執行。

  3. 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。

2、|| 運算符:

格式

command1 || command2

||則與&&相反。如果||左邊的命令(command1)未執行成功,那麼就執行||右邊的命令(command2);或者換句話說,“如果這個命令執行失敗了||那麼就執行這個命令。

  1. 命令之間使用 || 連接,實現邏輯或的功能。

  2. 只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令纔會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。

  3. 只要有一個命令返回真(命令返回值 $? == 0),後面的命令就不會被執行。

3、() {}運算符:

如果希望把幾個命令合在一起執行,shell提供了兩種方法。既可以在當前shell也可以在子shell中執行一組命令。 格式:

(command1;command2;command3....)               多個命令之間用;分隔

一串的命令執行()和{} ()和{}都是對一串的命令進行執行,但有所區別: 相同點: ()和{}都是把一串的命令放在括號裏面,並且命令之間用;號隔開 不同點 ()只是對一串命令重新開一個子shell進行執行,{}對一串命令在當前shell執行 ()最後一個命令可以不用分號,{}最後一個命令要用分號; ()裏的第一個命令和左邊括號不必有空格,{}的第一個命令和左括號之間必須要有一個空格 ()和{}中括號裏面的某個命令的重定向隻影響該命令,但括號外的重定向則影響到括號裏的所有命令

 

4、| 運算符

管道符號,是unix一個很強大的功能,符號爲一條豎線:"|"。 用法:

command 1 | command 2

他的功能是把第一個命令command 1執行的結果作爲command2的輸入傳給command 2

如:top | grep screen

 

5、整數變量表達式

-eq 等於 -ne 不等於 -gt 大於 -ge 大於等於 -lt 小於 -le 小於等於

6、字符串變量表達式

If [ $a = $b ] 如果string1等於string2,則爲真 字符串允許使用賦值號做等號 if [ $string1 != $string2 ] 如果string1不等於string2,則爲真 if [ -n $string ] 如果string 非空(非0),返回0(true) if [ -z $string ] 如果string 爲空,則爲真 if [ $sting ] 如果string 非空,返回0 (和-n類似)

7、邏輯運算符

和高級語言一樣,shell語言也有邏輯運算符,與、或、非三個邏輯運算符,分別如下

  • !:非

  • -a:與

  • -o:或

邏輯非 ! 條件表達式的相反 if [ ! 表達式 ] if [ ! -d $num ] 如果不存在目錄$num

邏輯與 –a 條件表達式的並列 if [ 表達式1 –a 表達式2 ]

邏輯或 -o 條件表達式的或 if [ 表達式1 –o 表達式2 ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章