接受还是不接受

奥古斯特·卡尔斯特伦(August Karlstrom)

命令之间有什么区别

$ env FOO=bar baz

$ FOO=bar baz

有什么作用env

震荡器

它们在功能上是等效的。

主要区别在于env FOO=bar baz涉及在shell和之间调用中间过程baz,就像FOO=bar baz直接调用shell一样baz
所以在这方面,FOO=bar baz是首选。

我发现自己env FOO=bar在其中使用的唯一情况是必须将一个命令传递给另一个命令。
作为一个特定的示例,可以说我有一个包装脚本,该脚本对环境进行了一些修改,然后调用exec传递给它的命令,例如:

#!/bin/bash
FOO=bob
some stuff
exec "$@"

如果您将其执行为myscript FOO=bar bazexec将抛出错误,因为exec FOO=bar baz无效。
取而代之的是,您将其称为myscript env FOO=bar baz它将作为执行exec env FOO=bar baz,并且完全有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章