bash 関数に実際に渡される引数の数を確認するにはどうすればよいでしょうか?

bash 関数に実際に渡される引数の数を確認するにはどうすればよいでしょうか?

bash 関数が与えられた場合:

function f1 {
  echo "The function f1 is being called with ??? argument(s)."
  }

そして2つの呼び出し:

f1 arg1
f1 arg1 arg2

渡された引数の数を取得するにはどうすればよいですか? 望ましい出力:

The function f1 is being called with 1 argument(s).    
The function f1 is being called with 2 argument(s).

答え1

使用できます

$#

man bashその他のBashのヒントについてはこちらをご覧ください

答え2

特別な引数を使用する

$#

これは、シェルのこの呼び出しに与えられた位置引数の数を返します。

からman bash...

$1 - $9 これらの変数は位置パラメータです。

$0 現在実行中のコマンドの名前。

$# シェルのこの呼び出しに与えられた位置引数の数。

$? 最後に実行されたコマンドの終了ステータスが 10 進文字列として返されます。コマンドが正常に完了すると、終了ステータス 0 (ゼロ) が返され、それ以外の場合は 0 以外の終了ステータスが返されます。

$$ このシェルのプロセス番号 - ファイル名に含めて一意にするのに役立ちます。

$! バックグラウンドで最後に実行されたコマンドのプロセス ID。

$- このシェルの呼び出しに指定された現在のオプション。

$* $1 から始まる、シェルへのすべての引数を含む文字列。

$@ 引用符で囲まれている場合を除き、上記と同じです。

これらの特別な引数は、現在のシェルに関するデータを収集するのに非常に役立ちます。

関連情報