如何将反斜杠参数传递给脚本?

How to pass backslashes argument to a script?

我只想在文本文件中附加一个用户输入参数。我正在使用以下命令:

echo "" >> "./db.txt"

</code> 需要用户设置如下路径:<code>D:\Projects\MyProject。它写入文件,但没有反斜杠。结果是:

D:ProjectsMyProject

我找不到任何解决方法。我试过使用 -e-E params(taken from here) 但在这种情况下似乎没有什么区别。

您必须转义 shell 中的反斜杠:\,或将字符串放在引号中。

出于调试目的,请使用 set -x

echo 'foo\bar\baz' 将显示 foo\bar\baz

当您的参数完全不使用引号时,某些字符具有特殊含义,例如 $ 表示 $HOME 中的变量。 Space 是参数分隔符,所以如果你想将它作为一个参数传递,你也必须转义它。

您可以使用 strong quoting 而不必引用 backslaches(例如 'foo\bar')。在强引号字符串中,唯一具有特殊含义的字符是 ',这意味着如果要将其放入屏幕,它是唯一必须转义的字符。

所以echo 'foo\bar\baz'会显示foo\bar\baz