
Пример: После add-apt-repository
завершения процесса немедленно запустить его apt-get update
— без необходимости вводить команду вручную.
Есть ли способ это сделать? Можно ли установить такую комбинацию без использования пароля sudo
? (хотя я не против любого варианта)
Я спрашиваю следующее:Как мне связать две команды вместе, чтобы всякий раз, когда я выполняю определенную команду, онавсегдавыполняет связанную команду после нее?
решение1
Как обычно,
sudo bash -c "command1; command2"
Если вы хотите запустить command2 только после успешного завершения command1, вы можете использовать as &&
вместо ;
.
sudo bash -c "command1 && command2"
Для вашего примера я буду использовать следующую команду.
sudo bash -c "add-apt-repository <repo> && apt-get update"
решение2
Существуют различные проблемы, связанные с этим с помощью псевдонима или простой функции bash, но вы можете написать небольшую оболочку для команды и вставить ее в /usr/local/bin
тот путь, который имеет приоритет.
ЭтоМаленький трюк, чтобы создать скрипт и одновременно изменить его права.
Он выгрузит исполняемый скрипт-оболочку в /usr/local/bin/add-apt-repository
.
sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF'
#!/bin/sh
/usr/bin/add-apt-repository "$@"
apt-get update
EOF
Чтобы отменить это, просто удалите /usr/local/bin/add-apt-repository
.
Если вы хотите сделать что-то более полезное (например, создать ссылку apt-get install
, apt-get update
чтобы всегда обновлять ее перед установкой), нам просто нужно расширить скрипт, чтобы просмотреть аргументы.
sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF'
#!/bin/sh
if [ "$1" = "install" ] ; then
/usr/bin/apt-get update
fi
/usr/bin/apt-get "$@"
EOF
Хотя учтите, что это запустит обновление раньшекаждый apt-get install
звонок. Это может показаться полезным, но на практике может оказаться очень утомительным.
решение3
Для выполнения определенных команд в определенной последовательности используется скриптинг оболочки. Все, что вам нужно сделать, это - Открыть терминал, нажав Ctrl+ Alt+ T
И следовать шагам -
1. Введите gedit filename.sh
2. После ввода этой команды откроется текстовый редактор, в котором вы можете ввести необходимые команды по одной в каждой строке. Например,sudo add-apt-repository
apt-get update
3. После ввода всех команд сохраните и выйдите либо с помощью графического интерфейса, либо нажав Ctrl+ Sи Ctrl+ Q.
4. Теперь вы вернетесь обратно в терминал. Запустите sh filename.sh
на терминале, и ваши команды будут выполнены, при условии, что в ваших командах нет ошибок.
Кроме того, если вы войдете из учетной записи суперпользователя (root), вам не придется вводить sudo
команду.
решение4
Самый простой способ сделать это — запустить:
sudo add-apt-repository <ppa_name> && sudo apt-get update
Если первая команда выполнена успешно, будет выполнена вторая.