zsh 배열이 있다고 가정해 보겠습니다 ARRAY=(a b c)
.
my_
배열의 각 요소 앞에 추가하고 싶습니다 (my_a my_b my_c)
.
어떻게 해야 하나요?
답변1
여러 옵션:
해당 목적을 위해 설계된 연산자 를 사용하십시오 ( 's ^
와 유사 ).rc
^
ARRAY=(my_$^ARRAY)
또는 이 확장자를 기본 확장자로 설정합니다( rc
또는 스타일 fish
).
set -o rcexpandparam
ARRAY=(my_$ARRAY)
또는 ksh93 방법 1, 테마 앵커의 시작으로 ${param/pattern/replacement}
with를 사용합니다.#
ARRAY=(${ARRAY/#/my_})
또는 csh 방식이지만 histsubstpattern
패턴에 따라 교체할 수 있는 변형이 있습니다.
set -o histsubstpattern
ARRAY=(${ARRAY:s/#/my_})
또는 다음을 사용하십시오 printf
.
printf -v ARRAY my_%s "$ARRAY[@]"
ARRAY=("${ARRAY[@]/#/my_}")
1 기술적으로 ksh93(또는 결국 복사한 bash 또는 mksh)에서는 그대로 두어야 하며 $ARRAY
인용 ${ARRAY[0]}
되지 않은 경우 분할+glob이 적용됩니다.