渡されたパラメータを繰り返す必要があるスクリプトがあります。パラメータがで始まる場合は、-
それを文字列に入れてopts
からインポートする必要があります$@
。
opts=""
for arg in "$@"
do
if [[ "$arg" == -* ]]; then
opts="${opts} ${arg}"
# remove arg from $@ ??
fi
done
echo $@
echo $args
arg
渡されたパラメータ配列から削除するには$@
?
ベストアンサー1
never で始まるオプションが-
引数を取らない場合は、次のようにします。opts
大量に:
for a; do
shift
case $a in
-*) opts+=("$a");;
*) set -- "$@" "$a";;
esac
done
(文字列にしたい場合は、にopts+=("$a")
変更してください。スニペットは標準シェルで機能します。)opts="$opts$a "
opts