Launcher запускает строку команд

Я пытаюсь создать пользовательскую пусковую установку для Cairo Dock, которая при нажатии открывает окно терминала и выполняет sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove подряд.

До сих пор это то, что у меня есть:

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

С этим, однако, я должен ввести свой длинный пароль три раза, потому что он открывает три отдельных окна терминала с каждой командой. Запуск xterm -e sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove не работает, потому что это три отдельные команды, и xterm не знает, что я хочу, чтобы все после -e выполнялось в том же окне терминала.

Есть ли что-то иное, чем &&, который определял бы все это как одну команду, а не три? Мне нужно написать скрипт или что-то (у меня еще нет опыта с скриптами)?

Я использую Terminix для выполнения исходной команды.

2
задан 4 September 2017 в 21:38

6 ответов

Вам просто нужно добавить некоторые кавычки:

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

Я также хотел добавить sudo apt clean к моему обновлению oneliner, и я установил alias в мой ~/.bash_aliases файл, чтобы выполнить line с помощью команды update:

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

Или если вы хотите отдельный xterm:

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

Если вы хотите, чтобы ваш xterm оставался открытым после выполнив команды, добавьте ;bash в конец цепочки команд или добавьте опцию -hold до -e.

1
ответ дан 22 May 2018 в 18:47

Вам просто нужно добавить некоторые кавычки:

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

Я также хотел добавить sudo apt clean к моему обновлению oneliner, и я установил alias в мой ~/.bash_aliases файл, чтобы выполнить line с помощью команды update:

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

Или если вы хотите отдельный xterm:

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

Если вы хотите, чтобы ваш xterm оставался открытым после выполнив команды, добавьте ;bash в конец цепочки команд или добавьте опцию -hold до -e.

1
ответ дан 18 July 2018 в 07:25

Вам просто нужно добавить некоторые кавычки:

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

Я также хотел добавить sudo apt clean к моему обновлению oneliner, и я установил alias в мой ~/.bash_aliases файл, чтобы выполнить line с помощью команды update:

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

Или если вы хотите отдельный xterm:

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

Если вы хотите, чтобы ваш xterm оставался открытым после выполнив команды, добавьте ;bash в конец цепочки команд или добавьте опцию -hold до -e.

1
ответ дан 24 July 2018 в 18:48

Используйте эту команду следующим образом:

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

с этим вы только однажды вводите свой пароль.

0
ответ дан 22 May 2018 в 18:47

Используйте эту команду следующим образом:

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

с этим вы только однажды вводите свой пароль.

0
ответ дан 18 July 2018 в 07:25

Используйте эту команду следующим образом:

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

с этим вы только однажды вводите свой пароль.

0
ответ дан 24 July 2018 в 18:48

Другие вопросы по тегам:

Похожие вопросы: