"shell out" 或 "shelling out" 是什么意思?

What does "shell out" or "shelling out" mean?

如这些示例中所用,例如:

shell out to bundle from inside a command invoked by bundle exec

shell out to a Ruby command that is not part of your current bundle,

http://bundler.io/man/bundle-exec.1.html

i'm shelling out to the heroku command in the rake task

https://github.com/sstephenson/rbenv/issues/400

Spawning a pipeline of connected programs via an intermediate shell — a.k.a. “shelling out”

http://julialang.org/blog/2012/03/shelling-out-sucks/

以及相关的 reddit 评论线程:http://www.reddit.com/r/programming/comments/1bwbyf/shelling_out_sucks/

因此,据我所知,我认为它的意思是 "going out from the context of the executing program, to the surrounding program, or execution environment",广义而言。通常你会去 unix shell,因此术语 shell out.

这意味着使用反引号(如 `command`)、system 调用或其他类似方法执行子流程。这些在子 shell 中执行过程,因此得名。

您可以在这个答案中找到更多详细信息: