IFS の変更はまだ適用されていません。

IFS の変更はまだ適用されていません。

変えてみましたIFS内部フィールド区切り記号)ファイル処理のために文字をコンマに変換しましたが、驚くほどIFS変わりませんでした。

コマンドと出力の順序は次のとおりです。

mtk4@mtk-laptop:~$ echo .$IFS.
. .                                    # A space
mtk4@mtk-laptop:~$ IFS=","             # No error was thrown, no message
mtk4@mtk-laptop:~$ echo .$IFS.
. .                                    # Again echo'd it, but no change

教えてください。ここで何の問題がありますか?

答え1

$variableIFSは、aが引用符なしで拡張されるときに区切り文字としても使用されます。つまり、変更しましたが、2 点間の区切り記号として扱われます。また、echoコマンドは$ IFSが何であるかを知らず、知っていても出力パラメーターの間に入れないので、スペースがあります。努力するecho ".$IFS."

答え2

書式指定子とともに組み込まれたコマンドを使用して、変数の値を確認できますbash(参考資料を参照)。printf%qIFShelp printf

printf '%q\n' "$IFS"    # $' \t\n'

# alternative, as already suggested by jw013
printf '%s' "$IFS" | od -A n -t x1 | xargs     # 20 09 0a

関連情報