如果我像这样运行一个简单的perl脚本(在linux上,使用bash),
$to_run = q(echo '\t');
$res = `$to_run`;
print $res
我希望打印\t
- 即反斜杠字符和“t”字符。的确,如果我只是在bash中运行
echo '\t'
我看到\t
。但是,perl脚本会打印制表符。
为什么制表工具在$res
中展开?所有角色都是这样展开的?而且,最重要的是,如何阻止它扩展呢?
答案 0 :(得分:5)
使用/bin/sh
评估反引号,无论您可能想要使用哪种shell,而POSIX XSI-conformant version of echo
implemented by sh
都会将\t
转换为标签。通过在echo '\t'
内运行sh
来自行尝试。
为避免此行为,请尝试在反对提示中使用printf '%s\n'
代替echo
。