我正在 Bookworm 上运行多个 Raspberry Pi 4。 在这些上,我有一个 bash 文件,如下:
sudo apt -y update
read -t 600 -p "Pausing 10 minutes between Update and Upgrade"
sudo apt -y upgrade
read -t 600 -p "Pausing 10 minutes between Upgrade and AutoRemove"
sudo apt -y autoremove
有时我会看到以下屏幕:
我还将其作为调用上述脚本的 cron 作业(每季度一次)运行,但通过 cron 运行时失败。 我如何识别这个 GUI 提示已出现并输入正确的答案?
重要提示:这种情况并不总是发生,所以我希望它能够识别何时发生,然后才提供正确的输入。
对于
dpkg
前端的特定情况,例如 apt
,它的构建目的是能够完全禁用交互式提示 - 您不需要自动执行提示,只需将其关闭即可。
在运行 apt 时导出环境变量
DEBIAN_FRONTEND=noninteractive
,你将不再得到交互式提示;如果您需要断言特定设置,您可以使用 debconf-utils
中的实用程序以非交互方式设置它们 - 请参阅其文档。
具体:
sudo DEBIAN_FRONTEND=noninteractive apt -y update
read -t 600 -p "Pausing 10 minutes between Update and Upgrade"
sudo DEBIAN_FRONTEND=noninteractive apt -y upgrade
read -t 600 -p "Pausing 10 minutes between Upgrade and AutoRemove"
sudo DEBIAN_FRONTEND=noninteractive apt -y autoremove