linux shell script 入門

一:

基本上,一個 script 被執行的時候, bash 會據以判斷執行
的步驟爲:
1. 如果讀取到一個 Enter 符號( CR ),就嘗試開始執行該行命令;
2. 如同前面 bash command 提到的,指令間的多個空白會被忽略掉;
3. 而空白行也將被忽略掉!,並且 tab 也是不會被理會的!
4. 至於如果一行的內容太多,則可以使用 / 來延伸至下一行;
5. 此外,使用最多的 # 可做爲批註!任何加在 # 後面的字,將全部被視爲批註文字而被忽略!

 二:

在撰寫一個 scripts 的時候,最好養成良好的習慣:
1. 先宣告使用的 shell 爲何?(特別留意這一點,在某些狀況中,例如 /etc/crontab 情況下,如果
沒有宣告使用的 shell ,常常會出現錯誤訊息而導致 scripts 無法被執行呦!)
2. 註明該 script 的內容功能、版本信息、作者、建文件日期等等
3. 每一個大步驟的主要功能(也順便提供自己未來修改之用!)
那麼 scripts 這個檔案要如何來執行呢?執行的方法有兩種:
* 一個是將該檔案改成可以執行的屬性,如chmod 755 scripts.file ,然後執行該檔案;
* 另一種則是直接以 sh 這個執行檔來執行 script 的內容,如 sh scripts.file!

三:

1:卷標與運算符號:declare

declare 【afirx】

-a:定義爲數組

-f:定義爲函數

-i:定義爲整數

-r:定義爲只讀

-x:定義爲透過環境輸出變量

2:

read 的功能就是
『依據您在鍵盤輸入的結果 input 到變量內容中』

3:定義一個 script 的參數的代號

myscript opt1 opt2 opt3 opt4
  $0 $1  $2  $3  $4

myscript爲自己shell的文件名,$1,$2,$3,$4爲你執行該shell時候的參數。

$0 : myscript 亦即是 script 的檔名
$1 : opt1 亦即是第一個附加的參數 (parameter)
$2 : opt2
$3 : opt3

四:邏輯判斷式與表達式

1:if then fi 的方式

if [ 條件判斷一 ] && (||) [ 條件判斷二 ]; then       <== if 是起始的意思,後面可以接若干個判斷式,使用 && 或 ||
    執行內容程序
elif [ 條件判斷三 ] && (||) [ 條件判斷四 ]; then     <==第二段的判斷,如果第一段沒有符合就來此搜尋條件
    執行第二段內容程序
else                                            <==當前兩段都不符合時,就以這段內容來執行!
    執行第三段內容程序
fi                                              <==結束 if then 的條件判斷!

新手常犯的錯誤

1. 在 [ ] 當中,只能有一個判別式;
2. 在 [ ] 與 [ ] 當中,可以使用 && 或 || 來組織判別式
3. 每一個獨立的組件之間『都需要有空格鍵來隔開』!

2:case ...esac 的方式

case 種類方式(string) in          <==開始階段,那個種類方式可分成兩種類型,通常使用 $1 這一種直接下達類型!
    種類方式一)
       程序執行段
       ;;                     <==種類方式一的結束符號!
    種類方式二)
       程序執行段
       ;;
    *)
       echo "Usage: {種類方式一|種類方式二}"     <==列出可以利用的參數值!
       exit 1
esac                         <==這個 case 的設定結束處!

 

五:循環

1:* for (( 條件一; 條件二; 條件三 ))
* for variable in variable1 variable2 .....

for有以上兩種表示方法

其中for (( 條件一; 條件二; 條件三))中

* 條件一:這可以看成是『初始值』
* 條件二:這可以看成是『符合值』
* 條件三:這可以看成是『步階』!

2:while...do...done

while:當條件相同的時候,就繼續做!

3:until...do...done

until:直到條件相同的時候才離開程序

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