我正在编写一个 shell 脚本,它会在我登录时询问我是否要检查我的系统是否有更新。如果我说是,它会检查并列出要升级的软件包。然后,它询问我是否要升级这些软件包。我想要询问我是否要升级软件包以仅在有一个或多个需要升级的软件包时才运行的命令sudo apt update && apt list --upgradeable
。我怎样才能做到这一点?到目前为止,这是我的脚本:
read -r -p "Would you like to check your system for updates? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
sudo apt update && apt list --upgradeable
read -r -p "Would you like to update your system? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
sudo apt upgrade && sudo apt autoremove && sudo apt autoclean
;;
[nN][oO]|[nN])
clear
;;
*)
clear && echo "Invalid input..."
;;
esac
;;
[nN][oO]|[nN])
clear
;;
*)
clear && echo "Invalid input..."
;;
esac
它基本上需要是这样的:如果这段文本在上一个命令的输出中,那么运行下一个命令。
任何帮助深表感谢。谢谢!
通过以下方式获取可用更新的数量:
要测试是否有可用的更新,请使用最后一个命令并针对 0 测试他的输出。
这是一个简单的脚本,可以完成您的
工作 请注意,它不处理错误输入,仅捕获 ''、'yes'、'Yes'、'y'、'Y' 以继续进行。如果没有“是”输入,则只需退出脚本。
版本 2