5

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

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"

有任何想法吗?

干杯

4

2 回答 2

10

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

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

可能更清洁的解决方案是使用“此处文档”

cat > email.txt <<'EOF'
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
EOF
于 2013-04-10T15:39:56.853 回答
2

转义双引号将起作用

echo "a\"" 
output -> a"

试试这个:

echo "
SUBJECT=\"Text here\"
EMAIL=\"email@domain.co.uk\"
EMAILMESSAGE=\"/tmp/emailmessage.txt\"
" > /root/email.txt
于 2013-04-10T15:53:38.033 回答