gpt4 book ai didi

bash - 'eval $command' 和 $command 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 09:09:22 27 4
gpt4 key购买 nike

有什么区别:

eval echo lala

和:

command="echo lala"
$command

它们似乎都具有相同的效果,但我可能遗漏了一些东西。此外,如果它们确实具有相同的效果,那么eval 命令的意义何在?

最佳答案

试试这个:

y='FOO=hello; echo $FOO'
eval $y

它打印hello

但是这个:

$y

说:

-bash: FOO=hello;: command not found

因此,当您说 eval $y 时,就像您将 $y 的内容键入解释器一样。但是当你只是说 $y 时,它需要是一个可以运行的命令,而不是解释器需要解析的一些其他标记(在上面的例子中,变量赋值)。

如果您知道变量包含可执行命令,则无需eval 即可运行它。但是,如果变量可能包含不仅仅是可执行命令的 Bash 代码(即您可以想象传递给 C 函数 exec() 的东西),则需要 eval

关于bash - 'eval $command' 和 $command 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com