以下の定義済みテキストをファイルに書き込みたい:
text="this is line one\n
this is line two\n
this is line three"
echo -e $text > filename
私はこのようなものを期待しています:
this is line one
this is line two
this is line three
しかしこれを得た:
this is line one
this is line two
this is line three
それぞれの後にスペースがないと確信して\n
いますが、余分なスペースはどのように出てきますか?
\n
各行のを削除すると、新しい行に移動するためにすでに改行がヒットします
\n
それであなたはなぜ次の行を新しい行に入れるのですか?単にtext="this is line one\nthis is line two\nthis is line three"
\n
各行の終わりにあるを削除すると、出力がすべて1行にまとめて実行されます。
"$text"
エコー行のを二重引用符で囲むことが重要です。それらがなければ、改行(リテラルと '\ n'の両方)は機能しません。彼らと一緒に、彼らはすべて行います。
text="this is line one\nthis is line two\nthis is line three"
、同じ1行を入力した場合はどうなりますか。(エンターなし)