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



お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu