Stack Exchangeで見つけた答えは正しく、このチュートリアルは間違っています。自分で実験したり、標準で調べたりすることができます。unset IFSは、デフォルト値のspace-tab-newlineに設定することと同じですが、空の場合、IFSフィールド分割は事実上オフになります。
あなたは相談することができIFS上スヴェンMascheckのページを歴史的な実装について。いくつかの歴史的なシェルはを好まなかったunset IFS、そして非常に古いバージョンのkshはそれを空のように扱ったIFSが、すべての最近のシェルとほとんどの古いシェルはunsetをIFSデフォルト値のように扱った。
IFS=フィールド分割をオフにしたくない場合を除いて、スクリプトを開始しないでください(これは合理的な決定です。ただし、グロブを回避するために、二重引用符を配置する必要があることに注意してくださいset -f)。デフォルト値をリセットするには、を使用しますunset IFS。これがスクリプトの最初に役立つかどうかは議論の余地があります。PATHスクリプトを誤らせるために呼び出し元が実行できる危険なことなど、他にも多くの悪い点があります。
このチュートリアルでは、リセットすることもお勧めしPATHます。これは通常悪いアドバイスです。ほとんどの場合、正しい検索パスを予測することはできませんが、ユーザーは知っています。どのようにするかどうかを知っています/usr/local/binか/home/bob/bin内のものはどこ古代のUNIX上でのユーティリティのバグ固定のバージョンが含まれている/usr/binバグがありますか?本当に/usr/xpg6/bin先に行くかどうかを判断するためのすべてのロジックを埋め込んで/binよろしいですか?あなたはどの位置にいます/usr/gnu/binか?スクリプトが特定のシステムを対象としない限り、PATHをリセットしないでください。
私はこのチュートリアルを読んだことはありませんが、1つのことを確認しました。最初から常に、変数置換とコマンド置換を二重引用符で囲むことはわかりません。ですから、このチュートリアルは良いものではないと思います。
unset IFSフィールド分割はリセットされますが、IFSはbashのデフォルト値にリセットされません。