$ IFS=";"
$ read first second
i am;a_i b c
$ echo $first
i am
$ echo $second
a_i b c
$ echo $IFS
- 私の言葉は正しいですか?これは
read first second
現在のシェルプロセスの子プロセスですか?それではなぜ必要ないのですかexport IFS=";"
? - なぜ空ですか
IFS
?
ベストアンサー1
私の言葉は正しいですか?読んだ最初の瞬間は、現在のシェルプロセスの子プロセスですか?それでは、IFS = ";"をエクスポートする必要がないのはなぜですか?
read
一つでもないバッシュ組み込み関数。ここでは、サブシェルやサブプロセスは作成されませんIFS
。
IFSが空の理由は何ですか?
二重引用符を使用しなかったためです。 IFS値をに変更したので、拡張すると、;
シェルecho $IFS
は単語分割とワイルドカードを実行するための区切り文字として使用されます。これで何も印刷されません。$IFS
;
;
努力する:
$ IFS=";"
$ printf "%s\n" $IFS
$ printf "%s\n" "$IFS"
;
ノート