변수 값을 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
이 옵션을 사용하면 문자열 인수 는 변수 값이 대체되는 형식일 수 있습니다. . 이 양식은 엄격합니다. 문자열 인수는 일반 매개변수 확장을 거치지 않습니다.