Estou escrevendo um shell script que me perguntará se eu gostaria de verificar meu sistema quanto a atualizações quando eu efetuar login. Se eu disser que sim, ele verifica e lista os pacotes a serem atualizados. Então, ele me pergunta se eu gostaria de atualizar esses pacotes. Eu gostaria que o comando que me pergunta se eu gostaria de atualizar os pacotes seja executado apenas quando houver um ou mais pacotes que precisem ser atualizados que foram listados após sudo apt update && apt list --upgradeable
. Como posso fazer isso? Aqui está o meu script até agora:
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
Basicamente, precisa ser assim: se esse pedaço de texto estiver na saída do comando anterior, execute o próximo comando.
Qualquer ajuda é muito apreciada. Obrigado!
Obtenha o número de atualizações disponíveis com:
Para testar se há atualizações disponíveis, use o último comando e teste sua saída em relação a 0.
Aqui está um script simples que fará suas coisas
. Observe que ele não lida com entradas ruins, apenas captura '', 'yes', 'YeS', 'y', 'Y' para continuar. Se não houver entrada 'sim', simplesmente saia do script.
Versão 2