Shell Script主要用途就是用來協助使用者在UNIX or Linux環境上, 以更方便, 更自動化的方式來執行想要執行的指令, 它也可以很快速的協助使用者 or 管理者大量地執行重複性的動作與指令. 做為一個系統管理者, 學會Shell Script絕對可以事半功倍.
基本觀念與操作
開始建立第一個shell script
- $ pwd
- /home/xfish/bin
- $ ls
- myscript
- myscript2
- $ cat myscript
- ls -aF
- $ myscript
- bash: ./myscript: Permission denied
- $ chmod +x myscript
- $ ./myscript
- ./ ../ myscript* myscript2*
複製代碼
shell script其實就是一個很簡單的文字檔案, 檔案裡面有著可以操作與控制相關動作與命令, 同時它必須具備能夠執行的能力,
在UNIX與Linux環境下, 也就是必須有 +x 的屬性
上面是一個很簡單的shell script, 簡單地列出目前目錄下的檔案.
同時由於Linux/UNIX底下有多種shell的編譯器, 我們也可以在該script中的第一行來指定利用特定的編譯器執行,
例如我們可以指定 : 而有時候因為需要偵錯(debug), 我們也會利用以下的方式執行 shell script :或者直接於第一行的 #!/bin/bash 該改為 #!/bin/bash -x , 執行的效果會類似這樣:- $ ./myscript
- + ls -aF (這一行是多出來的, 代表當時shell script執行到這一行)
- ./ ../ myscript* myscript2
複製代碼
使用echo命令
echo是用來顯示輸出的命令, 用幾個範例做個解釋, 後面的章節
將會看到常常利用echo來做些輸出的動作 : - $ echo a b c
- a b c
- $ echo "a b c"
- a b c
- $ echo $0
- -bash (說明, 這個會依照你使用的shell不同而改變)
複製代碼 同時echo還能搭配以下特殊符號來控制特別輸出 :
- \a alert, beeps the bell
- \b backspace character
- \c suppresses the new line
- \f formfeed character
- \n new-line
- \r return character
- \t tab character
- \v vertical tab character
- \\ single backslash character
複製代碼 以下是常用的 echo 範例:
利用 echo 顯示文字:
利用 echo 顯示執行動作與結果 (在進行大量批次動作常用) :- echo -n "process $file now ...."
- myprog $file > /dev/null
- if [ $? -eq 0 ]; then
- echo "OK"
- else
- echo "Failed"
- fi
複製代碼 利用 echo -n 將游標保留在與 process $file now ... 同一行, 接著根據 myprog $file 的結果, 顯示 OK 或者 Failed,
這樣的效果會變成 :
- process xxxx now ....OK 或者 process xxxx now ....Failed
複製代碼 |