$IFS変数を「バックアップ」する合理的な方法ですか?

$IFS変数を「バックアップ」する合理的な方法ですか?

$IFS私は大きな絵を台無しにするので、いつも混乱を経験することを躊躇します。

しかし、通常、bash配列に文字列をロードするのは素晴らしく簡潔ですが、bashスクリプトでは簡潔さを達成するのは難しいです。

$IFSだから私はスタートアップを他の変数に「保存」してから、何かを使い終わったらすぐに復元する$IFSことが何もしないよりも良いと思いました。

これは実用的ですか?それとも本質的に無意味であり、その後の使用IFSに必要に応じてリセットする必要がありますか?

ベストアンサー1

通常、条件をデフォルト値に復元することをお勧めします。

しかし、この場合はそうではありません。

なぜ? :

また、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.

おすすめ記事