這篇給了一份 bash script 用的 tempalte,但更重要的反而是裡面提到的 best practice:「Minimal safe Bash script template」。
首先是不要寫 /bin/bash
這件事情,因為有些系統是沒有 /bin/bash
的,像是 FreeBSD。
如果程式是可以用 POSIX sh 語法的話,應該優先考慮 /bin/sh
,如果用到非 POSIX 標準的語法的話,用 env 帶出來會少一些問題:
#!/usr/bin/env bash
再來是 fail 時就趕快停止,不要再往下執行,這點算是老生常談了,文章作者也有給一個範例說明:
set -Eeuo pipefail
再來另外一個還蠻有用的事情是攔下常見的 signal 處理「後事」:
trap cleanup SIGINT SIGTERM ERR EXIT cleanup() { trap - SIGINT SIGTERM ERR EXIT # script cleanup here }
其他的可以看一看,但未必要全盤收下...