Node exec`test -e`命令

时间:2013-08-25 18:33:05

标签: node.js bash

当我试图像下面那样做时:

exec('test -e package.json && npm install', function (err, stdout, stderr) {...});

当文件不存在时,我收到错误。为什么?如何区分文件缺失时的实际执行错误?

更新

从手册页: 测试实用程序评估表达式,如果计算结果为true,则返回零(true)退出状态;否则返回1(假)。如果没有表达式,test也会返回1(false)。

这是否意味着错误 - 纠正行为?是否可以检查文件,然后仅使用bash执行npm install

1 个答案:

答案 0 :(得分:2)

执行时

test -e package.json && npm install

package.json不存在,则test将失败,npm将无法执行(因为&&)并且整个表达式将被视为失败。 (这不应该是令人惊讶的;如果不是这样,你就不能做a && b && ca && b || c之类的事情。)

因此,如果您希望整个表达式返回成功,则需要指出:

test -e package.json && npm install || true