$IFS
私は大きな絵を台無しにするので、いつも混乱を経験することを躊躇します。
しかし、通常、bash配列に文字列をロードするのは素晴らしく簡潔ですが、bashスクリプトでは簡潔さを達成するのは難しいです。
$IFS
だから私はスタートアップを他の変数に「保存」してから、何かを使い終わったらすぐに復元する$IFS
ことが何もしないよりも良いと思いました。
これは実用的ですか?それとも本質的に無意味であり、その後の使用IFS
に必要に応じてリセットする必要がありますか?
ベストアンサー1
通常、条件をデフォルト値に復元することをお勧めします。
しかし、この場合はそうではありません。
なぜ? :
- スクリプトが起動するたびに(bashから)IFS は次のように設定されます。
$' \t\n'
。 unset IFS
ただ実行してくださいデフォルト値に設定したように。
また、IFS 値の保存に問題があります。
もともとIFSが設定されていない場合、コードは設定を解除するのではなくIFS="$OldIFS"
IFSを設定します。""
IFS値を実際に保持するには(設定されていない場合でも)、次のコマンドを使用します。
${IFS+"false"} && unset oldifs || oldifs="$IFS" # correctly store IFS.
IFS="error" ### change and use IFS as needed.
${oldifs+"false"} && unset IFS || IFS="$oldifs" # restore IFS.