回声但保留双引号

bsm*_*moo 3 bash shell ubuntu echo

我正在尝试创建一个将varibles/text回显到文件的脚本 - 这个脚本的片段是:

echo "
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
" > /root/email.txt
Run Code Online (Sandbox Code Playgroud)

这工作正常,但所有的双引号都被删除了.

当前输出:

# cat /root/email.txt
SUBJECT=Text here
EMAIL=email@domain.co.uk
EMAILMESSAGE=/tmp/emailmessage.txt
Run Code Online (Sandbox Code Playgroud)

期望的输出:

# cat /root/email.txt
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

干杯

Kei*_*son 7

双引号不嵌套.使用单引号:

echo '
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
' > /root/email.txt
Run Code Online (Sandbox Code Playgroud)

但是这会在文件的顶部和底部添加空行.如果你不想要那些:

echo 'SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"' > /root/email.txt
Run Code Online (Sandbox Code Playgroud)

可能更清洁的解决方案是使用"here here"

cat > email.txt <<'EOF'
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
EOF
Run Code Online (Sandbox Code Playgroud)