IFS
環境変数を改行文字に設定する次の例の場合...
IFS=$'\n'
- 何をしないドル記号は意味 を正確に?
- この特定のケースでは何をしますか?
- この特定の使用法の詳細はどこで確認できますか(Googleは検索で特殊文字を許可しておらず、他に何を探すべきかわかりません)?
IFS
環境変数と\n
文字(ラインフィード)は知っていますが、次の形式を使用しないのはなぜ
IFS="\n"
ですか(これは機能しません)?
たとえば、ファイルのすべての行をループしてforループを使用したい場合は、次のようにします。
for line in (< /path/to/file); do
echo "Line: $line"
done
ただし、がIFS
改行文字に設定されていない限り、これは正しく機能しません。これを機能させるには、次のようにする必要があります。
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
注:同じことをするのに別の方法は必要ありません。他にもたくさん知っています...私はそれについて知りたいだけで$'\n'
、誰かが私にそれについて説明してくれるかどうか疑問に思っています。
\n
はありません- 単なる(エスケープされた)文字nです。あなたはその通りで'\n'
あり"\n"
、バックラッシュとそれに続くnです。