linux程式設計——shell程式設計(第二章)

來源:互聯網
上載者:User

標籤:

這篇介紹shell的文法,包括shell中的變數,條件判斷,控制結構和函數。此外,這篇的所有命令都在變數條件控制結構函數。下一篇是命令和命令的執行。

Shell的文法

條件

所有程式設計語言的基礎都是對條件的進行測試判斷,並根據不同測試結果採取不同行動。一個 shell指令碼能夠對任何可以從命令列上調用的命令的 退出碼進行測試,其中也包括自己編寫的指令碼程式。這也就是要在所有自己編寫的指令碼程式的 結尾包括一條返回值的命令的重要原因
test或[命令
大多數指令碼程式都會廣泛使用shell的布爾判斷命令[或test
例如:[ -f fred.c ] 注意必須在 [符號 和被檢查的條件之間留出空格。如果把then和if放在同一行上,則需要使用一個分號把test語句和then分隔開。
test命令可以使用的條件類型可以分為3類:字串比較,算術比較和與檔案有關的條件測試。
字串比較                結果
string1 = string2        
string1 != string2
-n string                如果字串不為空白,則結果為真
-z string                 如果字串為null,則結構為真

算術比較                結果

expres1 -ep expres2        如果兩個運算式相等,則結果為真
expres1 -ne expres2        如果兩個運算式不等,則結果為真
expres1 -gt expres2        如果expres1大於expres2,則結果為真
expres1 -ge expres2        如果expres1大於等於expres2,則結果為真
expres1 -lt expres2        如果expres1小於
expres1 -le expres2        如果expres1小於等於
! expres                如果expres為假,則結果為真

檔案條件測試            結果
-d file                    如果檔案是一個目錄,則結果為真
-e file                    如果檔案存在,則結果為真(通常使用-f)
-f file                    如果檔案是一個普通檔案,則結果為真
-g file                    如果檔案的set-group-id位被設定,則
-r file                    如果檔案可讀,則
-s file                    如果檔案的大小不為0,則
-u file                    如果檔案的set-user-id位被設定,則
-w file                    如果檔案可寫,則
-x file                    如果檔案可執行,則

控制結構

shell有一組控制結構,它們與其他程式設計語言中的控制結構類似。
1.if語句
if conditon
then
    statement
else
    statement
fi

2.elif語句

3.判斷條件時,注意給變數加上引號,這樣一個空變數提供的就是合法測試了。
4.for語句
for variable in values
do
    statement
done
5.while語句
因為在預設情況下,所有的shell變數值都被認為是字串,所以for迴圈特別適合對於一系列字串進行迴圈處理,但如果事先並不知道迴圈要執行的次數,那麼使用while。
while condition do
    statement
done
6.until語句
until condition
do
    statement
done
7.case語句
case variable in
    pattern [ | pattern] ...) statement;;
    pattern [ | pattern] ...) statement;;
esac

8.命令列表
有時需要將多條命令串連成一個序列。
AND列表
AND列表結構: 只有在前面所有的命令都執行成功的情況下才執行後一條命令
statement1 && statement2 && statement3 && ...
從左向右執行每一條命令,&&的作用是檢查前一條命令的返回值是否為true。
OR列表
OR列表結構允許我們 持續執行一系列命令直到有一條命令成功為止,其後的命令將不再被執行
statement1 || statement2 || statement3 || ...
從左開始執行每條語句,如果一條命令返回的是false,它右邊的下一條命令才能被執行。
9.語句塊
如果想在某些允許使用單個語句的地方使用多條語句,可以把它們括在花括弧{}中來構造一個語句塊。

函數
要定義一個shell函數,只需要寫出它的名字,然後是一對空括弧,再把函數中的語句放在一對花括弧中,如下所示:
function_name(){
    statement
}

linux程式設計——shell程式設計(第二章)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.