$#
シェルではどういう意味ですか?
私はこのようなコードを持っています
if [ $# -eq 0 ]
then
これが何を意味するのかを理解したいのですが、$#
Googleはこの種の検索を正しく実行しません。
答え1
いつでもシェルのマニュアルページを確認できます。man bash
説明する:
Special Parameters
# Expands to the number of positional parameters in decimal.
したがって、シェルスクリプトは、次のコードを使用して提供された引数の数を確認できます。
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
答え2
実際、
`$` refer to `value of` and
`#` refer to `number of / total number`
ただこんなに一緒に
`$#` refer to `The value of the total number of command line arguments passed.`
したがって、$#
渡された引数/パラメータの数を確認し、期待どおりに素晴らしいことを処理できます。
同様に、我々は
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
など。
答え3
それは
スクリプトを呼び出すためのパラメータの数
スクリプトに設定されたパラメータの数
set -- foo bar
(関数内で使用される場合)関数を呼び出す引数の数(
set
ここでも機能できます)。
これについては、bashのマニュアルページの「特殊パラメータ」セクションに説明されています。