オプションの場合は、$ @からパラメータを削除してください。

オプションの場合は、$ @からパラメータを削除してください。

渡されたパラメータを繰り返す必要があるスクリプトがあります。パラメータがで始まる場合は、-それを文字列に入れて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

おすすめ記事