如何转义所有特殊字符以便能够按原样打印字符串?

如何转义所有特殊字符以便能够按原样打印字符串?

我正在动态创建 tcsh 脚本(使用静态语言)。我有一个<add-command-here>包含一些命令的部分。我想要做:

echo <add-command-here>

<add-command-here>只是插入命令。该命令应按原样打印并且不进行评估。例如,如果它包含 env$PWD我希望它打印$PWD而不是实际路径。我想到用单引号括起来:

echo '<add-command-here>'

但如果命令已经有引号,它将不起作用,因为这里它说:

单引号内不能出现单引号。

我也不能使用双引号,因为它仍然会计算,并且如果命令已经包含双引号,它也会遇到相同的问题。

一些测试:

main.py --help
main.py -option1 $PWD
main.py -option1 '$PWD'
'main.py -option1 $PWD'
main.py -option1 "$PWD"
main.py -option1 "PWD 'hi'"
main.py -option1 "PWD \'hi\'"

我希望所有这些都按原样打印,这意味着如果输入是,则X输出应该是X。我猜我们需要转义每一个特殊字符。我将自己实现(只需将其视为一个黑匣子 - 执行此操作的某些函数)。我的问题只集中在策略上。这里解决这个问题的正确方法是什么?

相关内容