我有代碼:猛砸報價樂趣
sudo_cmd="echo -e \\"$cmd\\" >> $CACHE_CONF"
echo "$sudo_cmd"
,打印字符串:
回聲-e「K1 = '的memcached://主機/' \ NK2 =「的memcached://主機/'\ n」 >> /opt/settings.py
,如果我在shell中執行它工作正常,這裏導致settings.py:
K1 = 'memcached://host/'
K2 = 'memcached://host/'
然而,當我通過ssh執行此命令:
ssh [email protected]$host "sudo sh -c \"$sudo_cmd\"
結果在settings.py不同的是:
K1 =分佈式緩存://主機/ NK2 = memcached:// host/n
儘管-e選項echo,換行符不起作用。
我做錯了什麼?
更新:
str="a\nb"
cat >> settings.py <<< "$str"
也不起作用。
您正在定義'$ str'不正確。 – 2011-03-10 13:48:37
我明白了。 str =「a \ nb」和str = $'a \ nb'之間有什麼區別?第二個選項有效。 – lstipakov 2011-03-10 14:07:47
'$'...''告訴bash解釋引用字符串中的任何轉義碼。 – 2011-03-10 14:09:15