Tag: Shell Script
在 Shell Script 要將用戶的輸入的英文字母轉換大小寫,或者要將檔案內文字的英文字母轉換大小寫,可以透過 tr 指令實現。 先看看 tr 指令的使用方法, 轉換檔案內所有大寫字母到小寫: $ tr ‘’ ‘’ < input.txt > output.txt 以上指令會將 input.txt 的檔案內容,全部大寫字母轉換為小寫,然後將結果匯入到 output.txt 檔案。 要將小寫轉換到大寫字母,只要將 upper 及 lower 倒轉即可: $ …
如果要在 Linux 下將現有的檔案, 刪除裡面的所有空白行, 可以用 Linux 內建的工具即可實現。 sed 指令 用 sed 指令即可刪除檔案內的空白行: $ sed -i ‘/^$/d’ input.txt 如果想將刪除空白行後的內容, 匯入到新檔案, 要改成這樣: $ sed ‘/^$/d’ input.txt > output.txt 有些空白行會包含一些空白字元, 例如 SPACE …
寫程式時經常需要截取字串中的一小部份, 很多程式語言都有類似 substr 等函式。在 Shell Script 雖然沒有 substr() 或 substring() 的函式, 但要實現也很方便, 以下會介紹兩種 Shell Script 下截取部份字串的方法。 ${string:S:N} 寫法 在 Shell Script 抽取字串, 最簡單的方法是這樣: 上面 Shell Script 執行結果是 s is …
在寫 Shell Script 時,有時需要取得路徑的目錄或檔案名稱,這時可以借助 dirname 及 basename,例如:
如果在執行 Shell Script 時預到 bad interpreter: No such file or directory 報錯, 原因是 Shell Script 第一行指定的 interpreter 路徑錯誤, 系統找不到 interpreter 所致。 解決方法是檢查 Shell Script 第一行的 interpreter, 設定回正確路徑, 一般是 /bin/sh …
當 Shell Script 執行時, 會有一個 Process ID (PID) 及 UID, 有時在 Shell Script 裡面需要取得這兩個數值, 例如想建立一個獨一無二的臨時檔案。 Bash 將 PID 存放到變數 “$$”, 而這個變數是唯讀, 不可以在 Shell Script 裡面修改數值。實際用法如下: 以上 Shell Script 會印出 …
一年裡面 12 個月份的日數也不一樣, 而且還有潤年的問題。在 Shell Script 裡面如果要取得每個月份的日數, 可以這樣寫: 執行結果是: Jan – 31 days Feb – 28 days Mar – 31 days Apr – 30 days May – 31 days …
在 UNIX Like 環境下輸入指令時, 可以按照不同的用法輸入不同的參數, 以下是在 Shell Script 讀取輸入的參數的寫法。 Shell Script 使用輸入的參數, 其實只要調用以數字名命的變數, 如 $1, $2, $3 …… 例如執行以下指令: ./shell_test.sh var1 var2 var3 上面執行 Shell Scrpt -> shell_test.sh, 並輸入 …
很多時寫 Shell Script 都需要使用者確認動作, 然後詢問 yes 或者 no, Shell Script 裡面可以這樣寫: Bash 3.2 或以上版本可以這樣寫: Bash 4.x 這樣寫:
如果忘記了替 Domain Name 續期的話, 被 Domain Registrar 停掉 Domain, 網站及電郵服務會暫停, 甚至失去網域的使用權。當持有網域的數量較多, 難免會忘記, 以下是介紹用 Shell Script 自動檢查網域的到期日及註冊機構, 並自動傳送續期通知都電郵。 這個 Shell Script 使用 whois 檢查網域資料, 及 mail 傳送電郵, 先安裝這兩個小工具: RHEL / …