【问题标题】:What's the difference between process and shell in vscode tasks.jsonvscode tasks.json中的process和shell有什么区别
【发布时间】:2019-06-15 20:16:57
【问题描述】:

Tasks in Visual Studio Code自定义任务 部分描述了任务的属性。有一个type 属性定义了任务的类型:

type:任务的类型。对于自定义任务,这可以是 shellprocess。如果指定了shell,则命令被解释为shell 命令(例如:bash、cmd 或PowerShell)。如果指定了process,则将命令解释为要执行的进程。

我不明白他们之间有什么不同。不管我选择shell还是process,所有的执行结果都是一样的。

那么解释为shell命令命令解释为进程执行有什么区别呢?

【问题讨论】:

    标签: visual-studio-code vscode-tasks


    【解决方案1】:

    好吧,我最近被一个问题困扰,我终于通过将类型从“进程”更改为“shell”来完成它,我认为这可能会对您有所帮助: 我正在尝试运行多个 .cpp 文件,并且在 args 中使用了通配符:“${fileDirname}/.cpp”。当类型为进程时,我无法成功运行项目,因为它总是告诉我:“*.cpp”:没有这样的文件或目录,当我更改为“shell”时它运行良好。这可能是“进程”和“外壳”之间的区别之一。

    【讨论】:

      【解决方案2】:

      shell 命令只能在 shell 内运行,例如 DIR 用于 cmdif 用于 bash。所以当你想运行 shell 命令时,你必须使用"type": "shell" 设置才能正确运行它。当您只想运行.bat.sh.exe 等程序时,只需使用"type": "process" 设置即可。

      【讨论】:

      • 你是个真正的英雄。
      • 所以我应该默认处理?它是否也会产生一个 cmd 或者我是否在节省时间?我猜过程的好处是什么。
      • 这并不能真正回答赞成/反对的论点是什么
      • 我同意@Razze 的观点,赞成/反对的论点仍未得到回答。当我可以很容易地使用“shell”类型来调用所述程序时,在执行程序时使用“进程”类型有什么好处?他们出于某种原因提供“过程”类型,但它是什么?通过为单个程序命令切换到“进程”可以获得什么?我在文档中找不到那个答案。
      • @WillHuang,是的。如果我想在命令中使用任何其他逻辑,除了程序名称,我需要使用“shell”类型。但同样,我仍然可以只使用“shell”类型作为程序名称,据我所知,结果将与使用“process”类型相同。所以这仍然没有回答“我为什么要选择'流程'类型?”的问题
      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 2011-02-15
      • 1970-01-01
      • 2013-11-06
      • 2012-08-21
      • 1970-01-01
      • 2015-04-07
      • 2010-10-10
      相关资源
      最近更新 更多