节点执行“test-e”命令



当我尝试进行如下smth时:

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

当文件不存在时,我会得到一个错误。为什么?如何区分实际执行错误和缺少文件?

更新

来自手册页:test实用程序计算表达式,如果计算结果为true,则返回零(true)退出状态;否则返回1(false)。若并没有表达式,test也会返回1(false)。

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

执行时
test -e package.json && npm install

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

因此,如果你想让整个表达式返回成功,你需要指出:

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

最新更新