我正在尝试创建一个将varibles / text回显到文件的脚本 - 这个脚本的片段是:
echo "
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
" > /root/email.txt
这样可以正常工作,但所有的双引号都被删除了。
当前输出:
# cat /root/email.txt
SUBJECT=Text here
EMAIL=email@domain.co.uk
EMAILMESSAGE=/tmp/emailmessage.txt
期望的输出:
# cat /root/email.txt
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
有什么想法吗?
干杯
答案 0 :(得分:7)
双引号不嵌套。使用单引号:
echo '
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
' > /root/email.txt
但是这会在文件的顶部和底部添加空行。如果你不想要那些:
echo 'SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"' > /root/email.txt
可能更清洁的解决方案是使用"here document"
cat > email.txt <<'EOF'
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
EOF
答案 1 :(得分:2)
转义双引号将起作用
echo "a\""
output -> a"
试试这个:
echo "
SUBJECT=\"Text here\"
EMAIL=\"email@domain.co.uk\"
EMAILMESSAGE=\"/tmp/emailmessage.txt\"
" > /root/email.txt