Launcher para lançar uma string de comandos

2

Estou tentando fazer um lançador personalizado para o Cairo Dock que, quando clicado, abre uma janela de terminal e executa sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove em sucessão.

Até agora, é isso que tenho:

xterm -e sudo apt-get update && xterm -e sudo apt-get upgrade && xterm -e sudo apt autoremove

Com isso, no entanto, eu tenho que digitar minha longa senha três vezes porque ela abre três janelas de terminal separadas com cada comando. Executar xterm -e sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove não funciona porque são três comandos separados e o xterm não sabe que eu quero tudo depois que -e seja executado na mesma janela do terminal.

Existe algo diferente de && que definiria tudo como um comando em vez de três? Terei que escrever um script ou algo assim (ainda não tenho experiência com scripts)?

Estou usando o Terminix para executar o comando original.

    
por Amolith 04.09.2017 / 20:29

2 respostas

1

Você só precisa adicionar algumas aspas:

xterm -e "sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove"

Também gosto de adicionar sudo apt clean ao meu oneliner de atualização e defino um alias no meu arquivo ~/.bash_aliases para executar a linha apenas com o comando update :

alias update='sudo apt update && sudo apt upgrade && sudo apt autoremove && sudo apt clean'

Ou se você quiser um xterm :

separado
alias update='xterm -e "sudo apt update && sudo apt upgrade && sudo apt autoremove && sudo apt clean"'

Se você quiser que o xterm permaneça aberto após a execução dos comandos, adicione ;bash ao final da cadeia de comando ou adicione a opção -hold antes de -e .

    
por dessert 04.09.2017 / 21:10
0

Use o comando desta maneira:

xterm -e sudo bash -c "apt update && apt upgrade && apt autoremove"

com isso, você só inserirá sua senha uma vez.

    
por George Udosen 04.09.2017 / 21:01