변수 할당을 위한 RHS의 필드 분할 및 파일 이름 확장이 이식 가능합니까?

변수 할당을 위한 RHS의 필드 분할 및 파일 이름 확장이 이식 가능합니까?

대부분의 POSIX 호환 셸(예: bash, ksh, , )에서는 변수 할당이 발생할 dash때 필드 분할 및 파일 이름 확장(셸에서 지원하는 경우 중괄호 확장 포함)이 할당 오른쪽에서 수행되지 않습니다.mkshpdksh

$ IFS=/
$ a=1/2
# Field splitting and filename expansion turned off here
$ b=$a
$ IFS=
$ printf '%s\n' $b
1/2

일부 쉘 문서(세게 때리다,케시) 이 내용을 언급했지만POSIX 문서아니요.

대부분의 POSIX 호환 셸에서 이 동작을 볼 수 있으므로 POSIX 문서에 지정되어 있지 않으므로 이식 가능한지 궁금합니다.

답변1

어디에서 보느냐에 따라 다릅니다. ~에서2장, 섹션 9.1:

물결표 확장, 매개변수 확장, 명령 대체, 산술 확장 및 따옴표 제거를 할당하기 전에 모든 변수 할당을 확장해야 합니다.

이 목록은 완전하다고 생각합니다.필드 분할필드 분할 부족이 POSIX 사양이라는 언급은 없습니다.

관련 정보