На этот вопрос уже есть ответ здесь:
Можно ли ввести следующую командную строку следующим образом:
command1 ; command2;
После проверки command1
?
Например, я делаю:
make
И это занимает много времени!
Я хочу сказать: после этой команды: do ./ myprogram
Так что я могу пойти и выпить кофе, а не просто ждать, пока он закончится для запуска следующей команды.
Для этого Вы требуете для помещения &&
между последовательными командами так, чтобы они выполнились один за другим
Уверенный можно сделать это, просто добавить &&
, или ||
при окончании строки, зависящей Вас, хотят действие, которое будет сделано, если предыдущая команда успешно выполняется или перестала работать. Таким образом для следующего примера я использую обычный материал обновления, но он работает почти с каждой командой.
#!/bin/bash
# an example upgrade script, call with sudo ./scriptname.sh
apt-get update &&
apt-get -y dist-upgrade &&
apt-get -y autoremove &&
apt-get clean
Это было бы для сценария который только вперед на последовательности команд прежде. обратите внимание, что последняя строка не имеет никакого &&
, это вызвано тем, что она бросила бы Вас ошибка если это где там, потому что существует никакая следующая команда, которая перейдет к.
Теперь пример для отказа, не так ли? При взятии снова того же примера, но я хочу, чтобы мой компьютер сказал мне, насколько глупый мое действие было ( ребячество ):
#!/bin/bash
# an example upgrade script, call with sudo ./scriptname.sh
apt-get update &&
(apt-get -y dist-upgrade &&) || echo "THIS was not working right"
apt-get -y autoremove &&
apt-get clean
, Таким образом, это было бы в случае, если сбои команды производят что-то, поскольку больше чтения на оболочке удара, пишущей сценарий Вас, может посетить ссылки, которые я включал здесь: