Cookbooks
スクリプティングのための応用的なコードスニペット集っぽいもの。 基本的な言語仕様についてはPOSIXシェルを参照。
See Also:
ユーザー入力を受け付ける
read
を使う。
echo -n "Are you sure? (y/N) "
read answer
if [ "$answer" != "y" ]; then
echo "Canceled."
exit
fi
参考:
コマンドの出力結果にタイムスタンプをつける
do_something | while IFS= read -r line; do echo "$(date) $line"; done
参考:
OSの判別
参考:
絵文字を使う
- 絵文字のユニコードを探す
U+1F3A3
だったら\U1F3A3
とする
4桁だったら小文字のuで、 \u2122
としてもいいっぽい。
絵文字を探すには http://www.fileformat.info/info/emoji/list.htm とか https://emojipedia.org/ を使うといい。
参考:
シェル関数が定義されているか調べる
コマンド同様に、 which function
or command -v function
で取れる。test -v function
ではNG.
数字を3桁ずつカンマ区切りで出力
オプション解析
シェルスクリプトでコマンドラインオプションをどう解析するか。
参考:
- bash によるオプション解析 - Qiita
- getopts, getopt, 自前解析のメリット・デメリット。自前解析推し
- Example of how to parse options with bash/getopt
sourceされたスクリプト内でファイル自身のパスを取得
Bash / Zsh両対応:
script_dir=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
参考:
排他制御
スクリプトのポータビリティを保ちつつ、簡単に実現するなら、ロック取得コマンドとして次の2つのコマンドが使える:
mkdir $lock_dir
ln -s $$ $lock_file
… 自身のプロセスIDでsymlinkを作成
自分では前者を使うことが多かったが、後者だとロック確保したプロセスを特定できるので、よりスマートだと思う。
参考: