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


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


関連するかもしれない記事

Bashとahkで数秒ごとにキーをタイプする作業を数回繰り返すスクリプト
WSL BashとPowershellで簡単なタイマーアプリを作る
Bash JSONを整形して出力
bashでaliasなしでコマンドを実行
Bashでunicodeをuft-8へ変換
Bashでインターネットのスピードを計測(ダウンロード/アップロード)
Bash How to make a file null / ファイルを空にする


Close Menu