$#の変数は何ですか?

$#の変数は何ですか?

私はLinuxを始める方法を学んでいますが、私は理解していないものを見つけました。 「次のコマンドが実行されました。

set 10 20 30 40 50

変数の値を入力してください$#

私が理解するのは変数$1=10 $2=20などです。では$#どうなりますか?

答え1

次のbashを想定してください。

#!/bin/bash
echo $#

これを実行すると、./arg.sh g jt t uu
シェルに渡した引数の数4が返されます。

シェルスクリプトのパラメータを検討することをお勧めします。
次のプログラムの使用法があるとします。 --value PATTERN -o PS_COMMAND_OPTIONS
これにより、次のようにコードを調べることができます。

if [ "$1" = "--value" -a "$3" != "-o"  -o "$1" != "--value" -a "$3" = "-o" -o ! $# -eq 4 ]; then
    help;
    exit;
fi;

答え2

私もLinuxを始めています。私はそれがパラメータの総数を意味することを理解しています。次のように使用できます。

#!/bin/bash
if [ $# = 2 ]
    then echo "Your name is $1 $2"
else
    echo "You need two arguments"
fi

関連情報