Обычно я использую ;
для объединения более одной команды в строке, но некоторые люди предпочитают &&
. Есть ли разница? Например, cd ~; cd -
и, cd ~ && cd -
кажется, сделать то же самое. Какая версия является более переносимой, например, будет поддерживаться подмножеством bash, таким как оболочка Android или около того?
bash
shell
syntax
multiplatform
psihodelia
источник
источник
;
Один или&&
один? Или ты имеешь ввиду оба?&&
.Я пользуюсь
&&
потому что давно на соседнем компе:но не помогло ...;)
cd /tnp/test && rm -rf *
безопасно... ;)источник
rm -rf /tnp/test
rm /tnp/test/ -rf
чтобы не допустить смертельного мискискIn
cmd1 && cmd2
,cmd2
выполняется только в случаеcmd1
успеха (возвращает 0).В
cmd1 ; cmd2
,cmd2
выполняется в любом случае.Обе конструкции являются частью POSIX-совместимой оболочки.
источник
&&
означает выполнить следующую команду, если предыдущая вышла со статусом 0. Для противоположного, используйте||
ie для выполнения, если предыдущая команда со статусом, не равным 0,;
выполняется всегда.Очень полезно, когда вам нужно выполнить определенное действие в зависимости от того, завершила ли предыдущая команда ОК или нет.
источник
Отдельные команды
;
выполняются последовательно, независимо от их статуса завершения.С
&&
, вторая команда выполняется только в том случае, если первая успешно завершена (возвращает состояние выхода 0).Это описано на странице руководства bash
Lists
. Я ожидаю, что любая Unix-подобная оболочка будет поддерживать оба этих оператора, но я не знаю конкретно о оболочке Android.источник
&&
допускает условное выполнение, в то время как;
всегда выполняется вторая команда.Например
command1 && command2
,command2
будет выполняться только тогда, когдаcommand1
завершено сexit 0
, сигнализация все прошло хорошо, в то время как воcommand1 ; command2
второй команде всегда будет выполняться независимо от того, какой результат былcommand1
.источник
&& логично и в bash. Bash имеет оценку короткого замыкания логического И. Эта идиома - более простой способ выразить следующее:
Принимая во внимание, что; версия просто:
источник