执行时
当我尝试进行如下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 && c
或a && b || c
之类的事情。)
因此,如果你想让整个表达式返回成功,你需要指出:
test -e package.json && npm install || true