我正在编写一个简单的脚本来自动编辑Ubuntu 14.04 LTS上的crontabs。我需要一段代码来显示系统上的当前crontabs。
我目前有这个:
for user in $cut -d ':' -f 1 /etc/passwd | sed -n '35,60000p'); do echo $user; sudo crontab -u $user; done
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^
Getting a list of non-system users Displaying user Displaying the crontab of each user.
然而,当我执行命令时,我有时会得到一个输出,在列表中的第一个用户名之后插入sudo密码提示,导致一个非常丑陋且难以阅读的报告。
有人可以帮我解决这个问题吗?我想拥有它,以便在显示报告之前提示您输入超级用户密码。
答案 0 :(得分:2)
在for
- 循环之前,添加以下命令:
sudo -v
这将更新缓存的sudo
凭据,在必要时提示输入密码,否则无效。 (有关详细信息,请在the Sudo Manual中搜索--validate
。)
更好的是,如果失败,您可能想要中止脚本:
sudo -v || exit $?