これを使用するshift
と、bashの引数の数が変わりますか$#
?
作成者のメモ:私がこの質問を受けたとき、このコミュニティはその質問を見つけることができませんでした。それで、今やってみましたが答えが出ましたね。他の方にも役に立つと思いますので、ここで私が学んだ内容を投稿します。 自分で答える質問。
ベストアンサー1
はい、確かに、標準の明確な要件:
shift [n]
位置パラメータを移動する必要があります。位置パラメータ1は、パラメータ(1 + n)の値として指定する必要があります。[...]そして、パラメータ「#」は新しい位置パラメータの数を反映するように更新されます。
次のスクリプトを考えてみましょう。
#!/usr/bin/env bash
echo "$#"
shift
echo "$#"
script-file first second third
それを呼び出すことは印刷3
の後に来るのと同じです2
。
これは、次のことができることを意味します。
#!/usr/bin/env bash
while [[ "$#" > 0 ]] ; do
echo "$1"
shift
done
...パラメータを1行に1つずつ印刷します。