Tasks in Visual Studio Code的自定义任务部分描述了任务的属性。有一个type
属性定义任务的类型:
类型:任务的类型。对于自定义任务,可以为
shell
或process
。如果指定了shell
,则该命令将解释为Shell命令(例如:bash,cmd或PowerShell)。如果指定了process
,则该命令将被解释为要执行的过程。
我不明白他们之间有什么区别。无论我选择shell
还是process
,所有执行结果都相同。
那么解释为shell命令和命令解释为要执行的过程的真正区别是什么?
答案 0 :(得分:2)
shell命令只能在诸如DIR
的{{1}}和cmd
的{{1}}之类的shell中运行。因此,当您要运行Shell命令时,必须使用if
设置才能正确运行它。如果您只想运行bash
,"type": "shell"
或.bat
之类的程序,则可以只使用.sh
设置。
答案 1 :(得分:0)
好吧,最近我遇到了一个问题,最后通过将类型从“ process”更改为“ shell”来解决了这个问题,我认为这可能对您有所帮助: 我试图运行多个.cpp文件,并且在args中使用了通配符:“ $ {fileDirname} / .cpp”。当类型为process时,我无法成功运行项目,因为它总是告诉我:“ * .cpp”:没有这样的文件或目录,当我更改为“ shell”时,它运行良好。这可能是“过程”和“外壳”之间的区别之一。