Linux bash防止回声逃逸
我对linux比较陌生,正在尝试创建一个解析文件的TikZ图。为此,我使用包含以下语句的$%&-bash脚本读入该文件Linux bash防止回声逃逸,linux,bash,escaping,echo,Linux,Bash,Escaping,Echo,我对linux比较陌生,正在尝试创建一个解析文件的TikZ图。为此,我使用包含以下语句的$%&-bash脚本读入该文件 echo "\fill[color=blue] ($xp,$zp) circle (5pt);" >> $fout 这将产生以下输出 ^Lill[color=blue] ($xp,$zp) circle (5pt); 显然,echo逃脱了\f,我没有找到绕过它的方法。 我试过所有的选项,比如“-e”“-n”,你也试过什么,试过各种“”的组合,但都没有用 我经常被
echo "\fill[color=blue] ($xp,$zp) circle (5pt);" >> $fout
这将产生以下输出
^Lill[color=blue] ($xp,$zp) circle (5pt);
显然,echo逃脱了\f,我没有找到绕过它的方法。
我试过所有的选项,比如“-e”“-n”,你也试过什么,试过各种“”的组合,但都没有用
我经常被linux困住,但这次连谷歌都帮不上忙(OMG=Oh My google!!!!!!!)。
echo
默认情况下不应该做反斜杠转义,除非指定了-e
。你可以尝试echo-e
强制关闭它们(以防你把echo
别名改为echo-e
或其他)
或者,尝试使用单引号(尽管现在我想起来了,我不认为这会有什么帮助):
可以使用printf作为替代。所有常用的转义字符都可以与printfgreat一起使用,这很有效,(printf“\\\fill”完成了这个技巧).你救了我一天,我真的很感谢你的帮助,best Enzo.nw.很高兴它帮了我;)你确定你使用的是
bash
?你观察到的输出符合POSIX标准,而dash
中的内置echo
(Ubuntu和其他一些发行版中的默认shell)遵循该标准。
echo '\fill[color=blue] ('"$xp,$zp"') circle (5pt);' >> $fout