我的脚本输出里面有丑陋的sudo密码提示

时间:2015-08-28 17:21:45

标签: bash ubuntu

我正在编写一个简单的脚本来自动编辑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密码提示,导致一个非常丑陋且难以阅读的报告。

有人可以帮我解决这个问题吗?我想拥有它,以便在显示报告之前提示您输入超级用户密码。

1 个答案:

答案 0 :(得分:2)

for - 循环之前,添加以下命令:

sudo -v

这将更新缓存的sudo凭据,在必要时提示输入密码,否则无效。 (有关详细信息,请在the Sudo Manual中搜索--validate。)

更好的是,如果失败,您可能想要中止脚本:

sudo -v || exit $?