Javascript if(stdout==“E”总是返回false
我正在将childprocess.exec的输出与字符串进行比较,但我肯定忽略了什么,因为我没有得到预期的结果Javascript if(stdout==“E”总是返回false,javascript,node.js,bash,Javascript,Node.js,Bash,我正在将childprocess.exec的输出与字符串进行比较,但我肯定忽略了什么,因为我没有得到预期的结果 function download_all(list, callback){ var i=0, cmd=""; function afterDownload(){...} while(i<list.length) { cmd="[ -f ./downloads/"+list[i]+&quo
function download_all(list, callback){
var i=0, cmd="";
function afterDownload(){...}
while(i<list.length)
{
cmd="[ -f ./downloads/"+list[i]+" ] && echo \"E\" || echo\""+list[i]+"\"";
exec(cmd, function(error, stdout, stderr){
if(stdout=="E")
{
console.log("Already Exist");
}else{
console.log("download "+LINK+""+stdout);
download(LINK+stdout, afterDownload());
}
});
i=i+1;
}
函数下载\u全部(列表,回调){
var i=0,cmd=“”;
函数afterDownload(){…}
而(iNodeJS)有一个“fs”模块,它可以为您解决这个问题
您可以这样做:
fs.exists(list[i], function (exists) {
console.log("exists = ", exists);
});
为什么不使用shellUsed fs.existsSync来代替从JS到Bash的Shell?因为我需要检查文件的存在性,如果有JS函数的话,这将是完美的,但是我发现的唯一方法是使用shellUsed fs.existsSync,因为我有参数要发送到回调函数中,但是工作起来很有魅力,非常感谢。