zsh `j에 대한 구분 기호로 변수 사용::` 매개변수 확장 플래그

zsh `j에 대한 구분 기호로 변수 사용::` 매개변수 확장 플래그

변수 값을 zsh j:<delimiter>:매개변수 확장 플래그의 구분 기호 문자열 값으로 어떻게 사용할 수 있습니까?

그렇게 할 수 없다면 변수를 사용하여 zsh에서 값을 구분하는 가장 효율적이고 간결한 방법은 무엇입니까?

array=(a b)
delimiter=,
printf -- "%s" ${(j:,:)array}          # good: outputs: a,b
printf -- "%s" ${(j:$delimiter:)array} # bad:  outputs: a$delimiterb

답변1

매개변수 확장 플래그를 사용합니다 p.

printf %s ${(pj:$delimiter:)array}

문서 인용(강조):

p

이 인수 뒤에 오는 아래 설명된 플래그에 대한 문자열 인수에 내장된 인쇄와 동일한 이스케이프 시퀀스를 인식합니다.

대안적으로,$VAR이 옵션을 사용하면 문자열 인수 는 변수 값이 대체되는 형식일 수 있습니다. . 이 양식은 엄격합니다. 문자열 인수는 일반 매개변수 확장을 거치지 않습니다.

관련 정보