"while test $# -gt 0"は何をしますか?

関数を作成しようとするのに良い例を見つけたと思いますが、後ろに隠れているロジックをすべて理解していません。

より具体的に言えば、「while」行で誰かがテストが何であるか、何をしているかを説明できますか? $#とは何ですか(#コメント文字ではありませんか?) -gt 0パラメータはどこから来ましたか? while のマニュアルページにありません。

例は次のとおりです。

function my_function()
{
while test $# -gt 0
do
    $
echo "$1"
    shift
done
}

ありがとうございます。

ベストアンサー1

#それ自体は明らかにコメントですが、関数$#に渡された引数の数を含みます。

testある数字が他の数字より大きいかどうかなど、さまざまなテストを実行できるプログラムです(演算子があれば-gt他の演算子が多いので参照man test)。テストが成功した場合(この場合はthe number of parametersISが0より大きい場合)、成功を返します。

このshiftコマンドは最初の引数を削除します。また減少$#

完全なコードは次のように考えることができます。引数を使用して操作を実行し(この場合は画面に表示)、引数が残りなくなるまで繰り返します。

デバッグに役立つ残りのパラメータをすべて表示するには、次の点を確認してください。$@

おすすめ記事