ksh93에서 IFS를 설정 해제할 수 없습니다. 기록이 있나요?

ksh93에서 IFS를 설정 해제할 수 없습니다. 기록이 있나요?

ksh93에서는 다음과 같이 모든 변수를 설정 해제할 수 있습니다.

$ var=value; echo "$<${var+set}"
<set>

$ unset var; echo "<${var+set}>"
<>

그러나 IFS동일한 방식으로 작동하지 않습니다.

$ unset IFS; echo "<${IFS+set}>"
set

제가 테스트한 다른 쉘에서는 이런 일이 발생하지 않습니다. 이것은 버그일 수도 있지만 제가 보기에는 의도적인 것 같습니다.

그러나 문서화된 위치(있는 경우)를 찾을 수 없습니다.

또는 :+null 값으로 확장하는 데만 사용합니다.

$ var="value"; echo "<${var:+set}> <${var+set}>"
<set> <set>

$ var=""     ; echo "<${var:+set}> <${var+set}>"
<> <set>

$ unset var  ; echo "<${var:+set}> <${var+set}>"
<> <>

그게 문제가 아니예요.

IFS에만 해당:

IFS="value"; echo "<${IFS:+set}> <${IFS+set}>"
<set> <set>

IFS=""     ; echo "<${IFS:+set}> <${IFS+set}>"
<> <set>

unset IFS  ; echo "<${IFS:+set}> <${IFS+set}>"
<> <set>                    <------------------- should be <> <>

버전 정보:

ksh -c 'echo "$KSH_VERSION"'
Version AJM 93u+ 2012-08-01

관련 정보