대부분의 POSIX 호환 셸(예: bash
, ksh
, , )에서는 변수 할당이 발생할 dash
때 필드 분할 및 파일 이름 확장(셸에서 지원하는 경우 중괄호 확장 포함)이 할당 오른쪽에서 수행되지 않습니다.mksh
pdksh
$ 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 사양이라는 언급은 없습니다.