So schreiben Sie aus Bash mehrere Zeilen in eine Datei

So schreiben Sie aus Bash mehrere Zeilen in eine Datei

Das ist dumm, und ich habe versucht, nach einer Möglichkeit zu suchen, dies zu tun, und viele Websites weisen darauf hin, dasselbe zu tun, aberNichtsfunktioniert.

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

echo $message_content > test

Erwartete Ausgabe von cat test:

A
B
C

Tatsächliche Ausgabe von cat test:

A B C

Was ist los?

Antwort1

Funktioniert das bei Ihnen nicht?:

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

oder Sie können Folgendes tun:

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

echo "$message_content" > test

wie der vorherige Kommentar vorgeschlagen hat. zBquote the variable

verwandte Informationen