シェルスクリプトのすべてのパラメータを一度に操作する方法は?

シェルスクリプトのすべてのパラメータを一度に操作する方法は?

限られた数の引数に対して、次の操作を明示的に実行できます。

wrapped_function "${1#prefix}" "${2#prefix}" "${3#prefix}"  # etc.,

もっと簡単に操作する方法はありますか?みんなワンタイムパラメータ?

答え1

もちろん、

wrapped_function "${@#prefix}"

$@集合を表すみんなパラメータ$1、、、$2...(参照)ここ)別の引用符で囲む、つまり基本的に

$@="\"$1\" \"$2\" \"$3\" ..."

ただし、bashは変数操作を個別に適用します。パラメータ、つまり

${@#prefix}="\"${1#prefix}\" \"${2#prefix}\" ..."

構文は、次から始める${VAR#prefix}と削除することを意味します。$VARprefix

TEST="/tmp/var/bin"; echo ${TEST#/tmp}  # yields "/var/bin"

同様に、%置換を使用してサフィックスを削除できます#

関連情報