在 Linux 上撰寫腳本,可以將一系列的指令組合起來,以完成我們所設定的任務,大部份的作業系統都支援 bash 環境,以下將示範如何撰寫基本的 shell script,以及如何加進環境變數 $PATH 中。
此篇文章同步於 字媒體 部落格。
建立腳本(shell script)檔
// 建立資料夾(可任意自訂),將 shell scripts 檔放在此資料夾底下 $ mkdir ~/Documents/Carlos/scripts // 建立腳本檔名(intro),shell script 並不需要指定副檔名,若想指定的話,intro.sh 是個好選擇 $ touch intro
intro 這個 shell script 檔案的內容如下(只有三行):
echo "Hello World" echo $(which neqn) cat $(which neqn)
第 1 行:將 “Hello World” 輸出到螢幕上;
第 2 行:將 $(which neqn) 的執行結果輸出到螢幕上,而 $(which neqn) 的輸出結果就是 neqn 這個內建指令的所在路徑;
第 3 行:輸出 newqn 腳本的原始碼至螢幕上。
該如何執行自己所建立的 intro 這個腳本呢
$ sh intro
結果如圖:
若覺得執行的時候,要輸入 sh 很麻煩,那麼可以在 intro 檔案中的最上方新增一行:
#!/bin/bash echo "Hello World" echo $(which neqn) cat $(which neqn)
#!/bin/bash 這一行的前兩個字元( #! )稱為 shebang (亦稱 Hashbang),後面指定要用哪個程式來解譯、執行此腳本。
加完 hashbang 那行後,還要再將此檔案設定成可執行的權限,如下指令:
$ chmod +x intro
此時就可以只執行以下指令(不用再輸入 sh ),來執行 intro 腳本了:
$ ./intro
將自行撰寫的 scripts 資料夾,加進環境變數中
但目前這只能在當前目錄下執行,或者要再額外輸入路徑才能執行,如果想要再任何目錄下都能夠僅輸入 intro 就能執行的話,就要將所建立的 ~/Documents/Carlos/scripts 資料夾,加進 $PATH 環境變數中了。
編輯 ~/.bashrc 檔案,最下方加入以下這行:
export PATH="$PATH:$HOME/Documents/Carlos/scripts"
$HOME 指的是家目錄;
$PATH 指的是原先的所有路徑;
: 指的是所有目錄路徑的分隔。
重新開啟 terminal 即可,就可以在終端機中,直接輸入 intro,就可以執行腳本指令了。
參考
書籍:系統管理員懶人包 Shell Script 自動化指令集