vscode Tasks.json中的进程和Shell之间有什么区别

Wil*_*ang 6 visual-studio-code vscode-tasks

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

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

我不明白他们之间有什么区别。无论选择shell还是process,所有执行结果都相同。

那么,解释为shell命令与将命令解释为要执行的过程之间有什么区别呢?

Wil*_*ang 5

shell命令只能在诸如DIRfor cmdiffor之类的shell中运行bash。因此,当您要运行shell命令时,必须使用"type": "shell"设置才能正确运行它。如果只想运行.bat.sh或程序.exe,则可以使用"type": "process"设置。

  • 这并没有真正回答赞成/反对的论点是什么 (2认同)
  • 我同意@Razze 的观点,赞成/反对的论点仍然没有得到解答。当我可以轻松地使用“shell”类型来调用所述程序时,在执行程序时使用“process”类型有什么好处?他们出于某种原因提供“过程”类型,但它是什么?通过将单个程序命令切换到“进程”可以获得什么好处?我在文档中找不到这个答案。 (2认同)
  • @WillHuang,是的。如果我想在命令中使用任何其他逻辑,除了程序名称之外,我需要使用“shell”类型。但同样,我仍然可以使用“shell”类型作为程序名称,据我所知,结果将与使用“process”类型相同。所以这仍然没有回答“为什么我应该选择‘流程’类型?”的问题。 (2认同)