我试图写一个脚本,将使用回声和写/追加到一个文件。但是我在语法中已经有““在字符串中。说..
echo "I am "Finding" difficult to write this to file" > file.txt echo "I can "write" without double quotes" >> file.txt
任何人都可以帮助理解这一点,真的很感激。BR、SM
noj0wjuj1#
如果你想有引号,那么你必须使用反斜杠字符来转义它们。
echo "I am \"Finding\" difficult to write this to file" > file.txt echo "I can \"write\" without double quotes" >> file.txt
同样的道理,如果你,我也想写\本身,因为它可能会引起副作用。所以你必须使用\\另一个选择是使用“”而不是引号。
\
\\
echo 'I am "Finding" difficult to write this to file' > file.txt echo 'I can "write" without double quotes' >> file.txt
然而在这种情况下,变量替换不起作用,所以如果你想使用变量,你必须把它们放在外面。
echo "This is a test to write $PATH in my file" >> file.txt echo 'This is a test to write '"$PATH"' in my file' >> file.txt
kzipqqlq2#
如果有特殊字符,可以使用反斜杠对其进行转义,以便根据需要使用它们:
但是,您也可以通过tee命令使用shell的“编辑”功能,这对于编写各种东西来说非常好:
tee
tee -a file.txt <<EOF I am "Finding" difficult to write this to file I can "write" without double quotes EOF
这将直接将您想要的任何内容写入该文件,并转义任何特殊字符,直到您到达EOF。
EOF
-a
2条答案
按热度按时间noj0wjuj1#
如果你想有引号,那么你必须使用反斜杠字符来转义它们。
同样的道理,如果你,我也想写
\
本身,因为它可能会引起副作用。所以你必须使用\\
另一个选择是使用“”而不是引号。
然而在这种情况下,变量替换不起作用,所以如果你想使用变量,你必须把它们放在外面。
kzipqqlq2#
如果有特殊字符,可以使用反斜杠对其进行转义,以便根据需要使用它们:
但是,您也可以通过
tee
命令使用shell的“编辑”功能,这对于编写各种东西来说非常好:这将直接将您想要的任何内容写入该文件,并转义任何特殊字符,直到您到达
EOF
。-a