助け合いフォーラム

LinuC

LinuC Lv1-102(Ver10.0)
問題ID : 15578
問題を開く
以下のシェルスクリプトを引数を与えずに実行した際の結果について正しく述べているものは次のうちどれか。

この問題はプレミアムコンテンツです。

上に戻る

条件式の#の意味

公開日 2023/04/29

問題文の条件式にある
#!/bin/bash
if test ! $# -eq 0 ←ここの「$#」の意味を知りたいです。
then
echo "[OK]"
else
echo "[NG]"
fi

2023/04/29 18:37

ChatGPTに聞いてみましたー。

質問
問題文の条件式にある
#!/bin/bash
if test ! $# -eq 0 ←ここの「$#」の意味を知りたいです。
then
echo "[OK]"
else
echo "[NG]"
fi

回答
このスクリプトは、Bashシェルスクリプトで書かれており、$#は、コマンドライン引数の数を表す特殊な変数です。

具体的には、$#は、スクリプトを実行する際に渡された引数の数を保持しています。例えば、次のようにスクリプトを実行するとします。

./script.sh arg1 arg2 arg3

この場合、$#は3になります。これは、スクリプトに3つの引数(arg1, arg2, arg3)が渡されているからです。

このスクリプトの if test ! $# -eq 0 の部分は、「もし引数の数が0でない場合」という条件を表しています。つまり、スクリプトに引数が渡されている場合には、[OK] が表示され、引数が渡されていない場合には、[NG] が表示されます。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?