[Linux] 撰寫 shell script 入門

在 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 自動化指令集

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of