在我的node.js脚本中,我需要使用sudo运行这两个命令:
execSync('sudo rsync -a ' + dir1 + " " + dir2);
execSync('sudo rm -Rf ' + dir1);
但是这会导致它要求sudo密码两次; 除此之外,如果我输错了密码,脚本会继续运行而不再请求密码; 如何缓存密码以避免被提示两次,并等到提供正确的密码后再继续?
答案 0 :(得分:2)
在this piece of advice之后,我还建议在同一sudo
命令下执行这两个命令。
execSync('sudo -- sh -c \'rsync -a ' + dir1 + ' ' + dir2 + ' && rm -Rf ' + dir1 + '\'');
检测是否发生错误可以从execSync本身完成。当stderr
不为空时,似乎抛出异常。我首先建议检查命令的退出代码,但该库似乎没有暴露它。