Это глупо, и я пытался найти способ сделать это, и многие сайты советуют делать то же самое, ноничегоработает.
#!/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