bash から 1 つのファイルに複数行を書き込む方法

bash から 1 つのファイルに複数行を書き込む方法

これは馬鹿げた話で、私はこれを実行する方法を検索してみましたが、多くのサイトで同じことをするように指示されていますが、何もない動作します。

#!/bin/bash
message_content="$(cat <<-EOF
    A
        B
    C
EOF
)"

echo $message_content > test

期待される出力cat test:

A
B
C

実際の出力cat test:

A B C

どうしたの?

答え1

これでうまくいきませんか?:

#!/bin/bash
cat <<EOF > test
A
B
C
EOF

または、次のようにすることもできます:

#!/bin/bash
message_content="$(cat <<-EOF
    A
        B
    C
EOF
)"

echo "$message_content" > test

前のコメントで示唆したように。例:quote the variable

関連情報