&&є логічним оператором. ;є простим послідовністю.
В cmd1 && cmd2, cmd2 буде запущено, лише якщо cmd1 вийде з успішним кодом повернення.
В той час як cmd1; cmd2cmd2 запускається незалежно від статусу виходу cmd1 (якщо припустити, що ви не встановили оболонку для виходу з усіх помилок у вашому сценарії чи щось подібне).
У відповідній примітці, cmd1 || cmd2використовуючи ||логічний оператор 'АБО', cmd2 буде запускатися лише у випадку відмови cmd1 (повертає ненульовий код виходу).
Ці логічні оператори іноді використовуються в скриптах замість базового оператора if. Наприклад,
if [[ -f "$foo" ]]; then mv "$foo" "${foo%.txt}.mkd"; fi
... можна досягти більш стислого за допомогою:
[[ -f "$foo" ]] && mv "$foo" "${foo%.txt}.mkd"
& (simple sequencing), && (conditional AND) and || (conditional OR).