bash - 我的脚本输出中丑陋的 sudo 密码提示

标签 bash ubuntu

我正在编写一个简单的脚本来自动在 Ubuntu 14.04 LTS 上编辑 crontab。我需要一段代码来显示系统上的当前 crontab。

我目前有这个:

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 密码提示,导致报告非常丑陋且难以阅读。

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

最佳答案

就在您的 for 之前-loop,添加这个命令:

sudo -v

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

更好的是,如果失败,您可能希望中止脚本:
sudo -v || exit $?

关于bash - 我的脚本输出中丑陋的 sudo 密码提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276548/

相关文章:

string - 读取包含字符串的行(Bash)

linux - 在 Bash 中将 JSON 字符串转换为数组

postgresql - 错误 | sudo apt-get 更新:404 未找到 [IP:2604:1380:2000:7501::69 80]

python - 使用包装在 python2.7 子进程中的 wget 永远运行

带有 Y/N 的 Bash if 语句

linux - 使用 sudo chmod 644/usr 更改/usr 的权限

ubuntu - phpmyadmin 为什么只显示菜单元素?

shell - 从 manifest.yaml 文件中解析一个值并将其对应的 block 名称存储到一个数组中

bash - bash 通配符行为记录在哪里?

ruby - "no such file to load -- net/https"- Heroku、 ruby 、Ubuntu 10.04