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

ベストアンサー1

おすすめ記事