次の引数までコマンドライン引数オプションを繰り返します。

次の引数までコマンドライン引数オプションを繰り返します。

私が作業しているスクリプトに新しく追加されたものでは、zshがコマンドの次のフラグに達するまで、フラグに関連するパラメータを繰り返したいと思います。たとえば、ユーザーが次のように入力した場合:

datt -p Package1 Package2 Package3 --build

スクリプトはPackage1Package2およびPackage3それぞれを配列の位置に割り当てる必要があります。私の思考プロセスは次のとおりです。

packages=()
for i in "$@"; do
     packages+=("$i")
done

だから私の質問は、コマンドラインの次のフラグが表示されるまでこのループを続行するスクリプトをどのように書くのですか?質問の冒頭に示されているコマンド()を使用して、datt -p Package1 Package2 Package3 --buildforループが--buildパッケージ名をキャプチャするのを防ぎ、配列への文字列の追加を停止するにはどうすればよいですかPackageN

ベストアンサー1

パラメータを正しく解析するのは面倒です。私はあなたが使用することをお勧めします選択を受ける(1)。ここで同じフラグを複数回指定できます。

datt -p Package1 -p Package2 -p Package3 --build

何らかの理由でフラグを再利用できない場合(何かはわかりませんが...)、パラメータを個々の項目に渡してスペースを区切ることもできます。

datt -p "Package1 Package2 Package3" --build

おすすめ記事