Відповіді:
;
Просто відокремлює одну команду від іншої. &&
Каже тільки запустити наступну команду , якщо попередній був успішним
cd /home; ls -al
Це буде, cd /home
і навіть якщо cd
команда не вдасться ( /home
не існує, у вас немає дозволу перейти її тощо), вона запуститься ls -al
.
cd /home && ls -al
Це запуститься лише в тому ls -al
випадку, якщо cd /home
успішно виконано .
a && b
якщо а повертає нуль код виходу, то Ь виконується.
a || b
якщо повертає код не дорівнює нулю виходу, то Ь виконується.
a ; b
a виконується, а потім виконується b .
cd /fakedir; ls -al
Запускається ls
в поточному каталозі, оскільки cd /fakedir
не вдасться, і оболонка буде ігнорувати статус виходу, який не дорівнює нулю.
cd /fakedir && ls -al
Оскільки &&
оператор буде продовжуватись лише тоді, коли попередня команда нормально вийшла (стан нульовий), жодна ls
операція не буде виконуватися.
Є й інші оператори, такі, як &
цей процес буде фоновим. Хоча часто розміщується в кінці команди, її можна помістити посередині ланцюга.
;
- це справді небезпечно (принаймні, з командою rm), наприкладcd /some/dir; rm -fr ./*
. Тож при такій руйнівній операції ви повинні бути впевнені, що ви знаходитесь у потрібному місці, перш ніж виконувати rm. Правильна командаcd /some/dir && rm -fr ./*