![ksh93에서 IFS를 설정 해제할 수 없습니다. 기록이 있나요?](https://linux55.com/image/14569/ksh93%EC%97%90%EC%84%9C%20IFS%EB%A5%BC%20%EC%84%A4%EC%A0%95%20%ED%95%B4%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EA%B8%B0%EB%A1%9D%EC%9D%B4%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
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