如何一次操作shell脚本的所有参数?

Tob*_*ler 2 bash parameter

而对于有限数量的参数,可以明确地做类似的事情

wrapped_function "${1#prefix}" "${2#prefix}" "${3#prefix}"  # etc.,
Run Code Online (Sandbox Code Playgroud)

没有更简单的方法可以同时操作所有参数吗?

Tob*_*ler 6

当然有,

wrapped_function "${@#prefix}"
Run Code Online (Sandbox Code Playgroud)

$@代表的收集所有参数$1$2......(见这里)在个别报价,即基本

$@="\"$1\" \"$2\" \"$3\" ..."
Run Code Online (Sandbox Code Playgroud)

然而,bash 对每个参数单独应用变量操作,即

${@#prefix}="\"${1#prefix}\" \"${2#prefix}\" ..."
Run Code Online (Sandbox Code Playgroud)

${VAR#prefix}语法手段,如果$VAR与启动prefix,将其删除,如

TEST="/tmp/var/bin"; echo ${TEST#/tmp}  # yields "/var/bin"
Run Code Online (Sandbox Code Playgroud)

同样,可以使用%代替#来删除后缀。