算術拡張はIFSに何とか関連していますか?

算術拡張はIFSに何とか関連していますか?

~からhttps://unix.stackexchange.com/a/458074/674

算術拡張は分割+globの影響を受けるため、引用符で囲む必要があります(shift "$((OPTIND - 1))")前の部分ではIFSを修正しませんが、それでも良い習慣です。

算術拡張はIFSに何とか関連していますか?

ベストアンサー1

他の算術拡張と同様に、引用符なしの算術拡張の結果には、ファイル名のワイルドカード(ワイルドカード拡張)と単語(フィールド)の分割があります。引用しない拡張。かなり役に立たず、一部のシェルではこれを行いませんが、これが歴史的シェルが行った作業なので(実装しやすくなるため)これがPOSIXが標準化したものです。

算術拡張の結果は文字列-と数字であるため、ワイルドカード文字を含めることはできません。 (一部のシェルには浮動小数点があり、文字も含めることができます.+)スペースを含めることはできないため、通常はフィールド分割の影響を受けません。ただし、フィールド分割は次の方法で設定できますIFS。フィールド区切り文字は文字ですIFS。数字を含めることはIFS非常にまれで非常に愚かなことですが、完全に強力なコードを書くにはこれを防ぐ必要があります。ダッシュを含めることはIFSそれほど愚かではないため、結果が否定的である可能性がある場合、これははるかに重要です。

POSIXでは、スクリプトが環境の値の影響を受けないように、シェルのIFS起動時にデフォルト値に設定する必要があると規定しています。IFS(エクスポートは一般的ではありませんが、IFS誰かが行うことができます)。IFS設定する必要があります。IFSデフォルトです(または設定を解除しても同じ効果があります)。

おすすめ記事