Se eu entendi sua pergunta corretamente, você pode usar o seguinte:
#!/bin/bash
apt-get update &> update.log
apt-get -y upgrade &> upgrade.log
echo "all done"
Salve este script como run_updates.sh , torne-o executável com chmod 755 run_updates.sh e execute-o com sudo ./run_updates.sh .
Se você quiser salvar todas as saídas em um arquivo, remova o &> updates.log e &> upgrades.log do script e execute o script como sudo./run_updates.sh &> run_updates.log
Explicação do script:
-
apt-get update &> update.logrunsapt-get updatee salva a saída emupdate.log -
apt-get -y upgrade &> upgrade.logrunsapt-get upgradee salva a saída emupgrade.log. O-yimpede o apt de pedir para continuar (assume "sim")
Uma observação sobre redirecionamentos:
Você pode usar os redirecionamentos abaixo para "enviar" a saída de um comando ou script para um arquivo.
-
&>redireciona STDOUT e STDERR -
>ou1>redireciona STDOUT -
2>redireciona STDERR
Uma nota sobre o sudo:
Esta é provavelmente a razão pela qual você tem erros. Ao executar um comando que precisa de sudo em um script, é uma boa ideia colocar o comando sem sudo no script e executar o script com sudo . Caso contrário, você teria que dar sua senha sudo para o script de alguma forma, o que é ruim.
Editar:
No código a seguir, a saída de ambos os comandos apt é redirecionada para update.log . O% > ( >> ) duplo é usado para anexar dados a um arquivo (em vez de substituí-lo)
#!/bin/bash
apt-get update &> update.log
apt-get -y upgrade &>> update.log
echo "all done"