私が作業しているスクリプトに新しく追加されたものでは、zshがコマンドの次のフラグに達するまで、フラグに関連するパラメータを繰り返したいと思います。たとえば、ユーザーが次のように入力した場合:
datt -p Package1 Package2 Package3 --build
スクリプトはPackage1
、Package2
およびPackage3
それぞれを配列の位置に割り当てる必要があります。私の思考プロセスは次のとおりです。
packages=()
for i in "$@"; do
packages+=("$i")
done
だから私の質問は、コマンドラインの次のフラグが表示されるまでこのループを続行するスクリプトをどのように書くのですか?質問の冒頭に示されているコマンド()を使用して、datt -p Package1 Package2 Package3 --build
forループが--build
パッケージ名をキャプチャするのを防ぎ、配列への文字列の追加を停止するにはどうすればよいですかPackageN
?
ベストアンサー1
パラメータを正しく解析するのは面倒です。私はあなたが使用することをお勧めします選択を受ける(1)。ここで同じフラグを複数回指定できます。
datt -p Package1 -p Package2 -p Package3 --build
何らかの理由でフラグを再利用できない場合(何かはわかりませんが...)、パラメータを個々の項目に渡してスペースを区切ることもできます。
datt -p "Package1 Package2 Package3" --build