Что делает следующая команда:
COMM1 & COMM2
и чем она отличается от:
COMM1 && COMM2
COMM1 & COMM2
запускает COMM1
в качестве фонового процесса и немедленно выполняет COMM2
; тогда как
COMM1 && COMM2
ожидает завершения COMM1
и затем выполняет COMM2
тогда и только тогда, когда COMM1
завершился успешно.
Технически, &&
является логическим оператором короткого замыкания , который оценивает второе утверждение, только если он не может определить логическое значение объединенного выражения иначе: другими словами, если состояние выхода COMM1
равно истина , тогда необходимо оценить COMM2
, но если состояние выхода COMM1
равно ложно , то нет необходимости оценивать COMM2
] поскольку выражение в целом не может быть правдой.
при использовании &&
это означает, что сценарий / команда должны дождаться успешного запуска первого выполнения, прежде чем сможет продолжить выполнение второго сценария / команды. Например,
sudo apt-get update && sudo apt-get -y upgrade
С помощью этой команды это означает, что обновление будет запущено первым, и обновление должно ждать, пока обновление не будет выполнено, прежде чем оно сможет продолжаться.
только только &
это означает, что какую бы команду / скрипт вы ни вводили, все они будут выполняться в фоновом режиме и будут действовать независимо друг от друга (мультикоманды / сценарии).
pkill deluge
сопровождаемыйsystemctl start deluged
lmao – Toadfish 6 October 2015 в 12:23