제한된 수의 인수에 대해 다음과 같은 작업을 명시적으로 수행할 수 있습니다.
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}
하면 제거함을 의미합니다.$VAR
prefix
TEST="/tmp/var/bin"; echo ${TEST#/tmp} # yields "/var/bin"
마찬가지로, %
치환을 사용하여 접미사를 제거할 수 있습니다 #
.