C++ 防止shell命令替换
有没有办法防止shell脚本中的命令替换 例如,如果脚本包含以下行:C++ 防止shell命令替换,c++,c,shell,command-substitution,C++,C,Shell,Command Substitution,有没有办法防止shell脚本中的命令替换 例如,如果脚本包含以下行: var=`echo foo` 我想知道怎么得到“echo foo”。不仅仅是命令foo的替代品 编辑:我正在尝试存储这些命令,以便以后评估。另外,我不能手动编辑脚本;我需要在C/C++程序中使用这些值,这样我就必须以某种方式解析脚本,这就破坏了目的(这正是我想要避免的:解析脚本) 编辑#2:此处解释的完整情况:有一个shell脚本,其中包含一组变量,如下所示: foo="bar" baz=`some_command` 我希
var=`echo foo`
我想知道怎么得到“echo foo”。不仅仅是命令foo的替代品
编辑:我正在尝试存储这些命令,以便以后评估。另外,我不能手动编辑脚本;我需要在C/C++程序中使用这些值,这样我就必须以某种方式解析脚本,这就破坏了目的(这正是我想要避免的:解析脚本)
编辑#2:此处解释的完整情况:有一个shell脚本,其中包含一组变量,如下所示:
foo="bar"
baz=`some_command`
我希望每个变量都存储表达式的正确部分(即“bar”和“some_command”)。我必须在C/C++程序中执行此操作,因此无法手动编辑脚本(例如添加单引号)。您必须将字符串放入单引号中
var='`echo foo`'
你想干什么?如果要为
eval
“保护”字符串,则该字符串无效。是否要分析脚本?你说你想从var=`echo foo`
中获取`echo foo`
,它看起来很像shell语法,而不是C/C++语法。用户是否在C/C++程序中键入了应该在shell中运行的命令?@l0b0:我不想解析脚本(这是一个漫长而痛苦的过程)。所以,我想把生成一个shell作为另一个过程,并用脚本在那里做一些事情。因此,是的,我正在寻找一些shell语法/魔力。我提到C/C++程序是为了表明脚本不能手动编辑。忘记提到我不能手动编辑此脚本。我想在C/C++程序中获取这些值,因此我必须解析脚本以找到单引号的位置,这正是我想要避免的。