Tag: Shell Script

Shell Script 建立臨時檔案

在寫 Shell Script 時, 有時需要建立臨時檔案, 很多時會用 temp 或 tmp 這類副檔名實現。但如果這些檔案名稱和其他 process 的臨時檔案名稱相同, 便會錯誤地覆寫其他臨時檔案的內容。 在 Linux 系統可以用 mktemp 工具, 它可以很簡單地建立, 使用及移除不會重覆檔名的臨時檔案。 執行 mktemp 時, 它們預設會出檔案名稱及路徑: $ mktemp /tmp/tmp.94uGx1HYiS 如果沒有指定路徑, 臨時檔案的的位置是 …

VIM 使用自動縮排下貼上程式碼

在 VIM 寫程式時, 很多時會設定使用自動縮排, 即用 audoindent 或 smartindent, 這樣只是寫程式沒問題, 但如果要複製並貼上一些程式碼, 這會重覆縮排。 要解決這個問題, 可以在用 vim 時, 輸入以下指令: 完成貼上後, 要回復原來的自動縮排, 便再次輸入以下指令: 如果預設值是會自動縮排, 那便關閉檔案後, 會自動開啟縮排。 但要輸入上面的指令也很麻煩, 所以在 .vimrc 檔案設定, 用 F3 鍵進行切換, …

Shell Script 檢查輸入參數

在執行 Shell Script 時輸入參數很常見, 在編寫 Shell Script 時要判斷輸入的參數可以很簡單做到, 例如: 上面的第 3 行會檢查第 1 個輸入的參數是否 ABC, 如果是 ABC 便會印出 “ABC” 字串, 如果不是便會印出 “Not ABC”.

Python 讀取 Pipe 輸入

在 Unix Like 環境下的 Pipe (管線) 十分重要, 它可以將一個程式的輸出, 送給另一個程式處理, 只要中間用 “|” 字符相隔, 讓幾個不同的程式互相配合工作, 以下本章會介紹在 Python 讀取 Pipe 輸入的方法. 在 Python 要讀取 Pipe 輸入, 可以用 sys 模組的 sys.stdin, 它會讀取 /dev/stdin …

Shell Script 測試檔案是否可讀或可寫入

本文是在 Shell Script 判斷檔案是否可讀或可寫入的方法。 Shell Script 還可以用以下參數測試檔案, 當符合以下條件便會回傳 true: -w FILE : 檔案存在並可以寫入 -x FILE : 檔案存在並有執行權限 -d FILE : 是一個目錄 -e FILE : 檔案存在 -f FILE : 檔案存在, …

Shell Script 將指令輸出儲存到變數

在 Shell Script 要將執行指令的輸出儲存到變數, 而不是直接輸出結果, 可以用以下兩種寫法: 或 要留意的是, 跟 PHP 或 Python 等不同, 在等號 (=) 前後不可以加入空間。 例如要將日期儲存到變數 today, 可以用以下寫法: 或 將變數內容輸出跟其他變數一樣, 可以用 echo 或 printf: 以上是在 Shell Script 把指令輸出儲存到變數, …

Shell Script 加入今天的日期

在寫程式時很多時也需要使用今天的日期, 例如在建立檔案或目錄名稱時, 會加入日期以作識別。 Linux 的 date 指令可以輸出日期, 如果只要單純地輸出日期, 可以這樣寫: 以上指令會用以下格式輸出今天日期: Today is Tue Dec 10 08:21:01 HKT 2019 如果想要建立一個目錄, 在後面加入今天日期以作識別, 例如建立像這樣的目錄 /backup/files-20191210/, 可以用以下寫法”

Shell Script 自動檢查硬碟使用量

Linux 下要用 Shell Script 自動檢查硬碟分割區的使用量, 可以透過 df 指令實現。 df 指令可以在 Linux 下檢視硬碟分割區使用量, 配合 grep 及 awk 擷取所需的資訊, 便可以用 Shell Script 自動檢查硬碟使用量, 當發現使用量超過設定的百分比 (例如 80%) 時, 再用 mail 指令發出電子郵件通知系統管理員。 執行 …

Shell Script 檢查檔案或目錄是否存在

寫程式時很多時候需要檢查檔案或目錄是否存在, 在 Shell Script 檢查檔案及目錄是否存在, 可以在 if 條件判斷式裡面加上 -e 或 -d 實現, 以下是具體寫法: 檢查檔案是否存在: 上面的 if 判斷式也可以用一行來實現: 檢查目錄是否存在: 用一行來實現上面的程式碼: 其中一個十分實用的例子, 是檢查檔案或目錄是否存在, 如果不存在就便宜檔案或目錄: This is the best practice to check …