引数付きのBash関数

引数付きのBash関数

次のような bash スクリプトを記述できることはわかっています:

foo() {
  echo $1;
}

しかし、次のように記述する関数を定義できますか:

foo(string) {
  echo $string;
}

どうしてもこの状況から抜け出す方法が見つからないんです。

答え1

利用可能な形式は最初の形式のみです。詳細はマニュアルをご覧ください

名前付きパラメータを使用するには、関数の先頭でパラメータを割り当てるのが従来の手法です。

foo() {
  string=$1
  # ...
  echo "${string}"
}

関連情報