После редактирования: дело в том, что &&
имеет больший приоритет, чем &
, так что все это связывается в И список
, и получает фон как единое целое. См. Lists of Commands in the manual, хотя это не очень понятно.
Наименьшее изменение в вашем оригинальном коде, которое будет работать, это
if condition-command && condition-command; then background-job & fi
(это является if
, но не цепочечный). Только
condition-command && condition-command && (background-job &)
должно сработать.
Я обнаружил, что есть определенные ситуации (помимо пробела или небезопасных персонажей), которые требуют двойных кавычек вокруг параметра -name
, независимо от того, является ли параметр переменной или жестким кодированным значением. Всегда хорошо, чтобы получить привычку использовать их.