在我的 node.js 脚本中,我需要使用 sudo 运行这两个命令:
execSync('sudo rsync -a ' + dir1 + " " + dir2);
execSync('sudo rm -Rf ' + dir1);
Run Code Online (Sandbox Code Playgroud)
但这会导致它会要求输入 sudo 密码两次;除此之外,如果我输入了错误的密码,脚本将继续运行而不会再次请求它;如何缓存密码以避免两次提示输入密码并等到提供正确的密码后再继续?
根据这条建议,我还建议在同一命令下执行这两个命令sudo。
execSync('sudo -- sh -c \'rsync -a ' + dir1 + ' ' + dir2 + ' && rm -Rf ' + dir1 + '\'');
Run Code Online (Sandbox Code Playgroud)
可以通过execSync本身来检测是否发生错误。看来当stderris不为空时会抛出异常。我首先建议检查命令的退出代码,但该库似乎没有公开它。
| 归档时间: |
|
| 查看次数: |
12839 次 |
| 最近记录: |