プログラミング

Bashの関数でデフォルトの引数

Linuxコマンドライン言語のBashの関数でデフォルトの引数を指定する方法について紹介します。

randomって関数で乱数32桁を簡単に生成できるようにしてたけどやっぱ桁数指定できたほうが良くて、以下のaliasを、


alias random="cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1"

こんなふうに改良。

random(){
  ARG1=${1:-32}
  cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $ARG1 | head -n 1
}

random 8とやれば8桁の乱数になる。

ARG1=${1:-32}で、第一引数が指定されて入ればそれを変数に代入し、指定されていなければデフォルトとして32の数値を代入、という意味になるっぽい。

ARG4=${4:-$(date)}のようなコマンド展開して代入とかもできる。

関数だけでなく、.shのファイルに対しての引数に対してとしても同じように有効みたい。

参考文献:
How to write a bash script that takes optional input arguments? – Stack Overflow

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です