bash`shift`コマンドは引数カウント `$#`を変更しますか

bash shiftコマンドを使用すると、 $#の引数数は変更されますか?

作成者からのメモ:この質問があったとき、このコミュニティでは(まだ)見つかりませんでした。したがって、私は単にそれを試し、私の答えを得ました。他の人に役立つかもしれないと思ったので、ここで学んだことを 自己回答の質問 として投稿しました。 。

回答

はい、そうです、標準で明示的に要求されています

shift [n]位置パラメータをシフトします。位置パラメータ1にはパラメータ(1 + n)の値を割り当て、 […] パラメータ「#」を更新して新しい位置の数を反映します。パラメータ。

次のスクリプトを検討してください:

#!/usr/bin/env bash echo "$#" shift echo "$#" 

3の後に2を出力します。

これは私たちができることを意味します例:

#!/usr/bin/env bash while [[ "$#" > 0 ]] ; do echo "$1" shift done 

…引数を1行ずつ出力します。

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です