Почему `ls -al &; ls -al` недействителен?

Я запустил это в своей коробке Centos5:

ls -al & ; ls -al

Я ожидал, что он запустит ls -al в фоновом режиме и одновременно запустит ls -al на переднем плане и продемонстрирует, как вывод на терминал становится все искаженным, делая это ,

Однако я получаю:

-bash: синтаксическая ошибка около неожиданного токена `; '

Как я могу написать эти две команды в одной строке?

10
@thatotherguy Я думаю, что искал этот сайт для ... долгого времени .....!
добавлено автор Lightness Races in Orbit, источник
Хотя это удобный сайт, не вызывает вопросов, таких как неправильный
добавлено автор thecoshman, источник
Вы пропустили двоеточие в своей команде. Вы могли бы сказать: ls -al &:; ls -al . Смайлики хороши.
добавлено автор devnull, источник
@thatotherguy Ничего себе. Это здорово
добавлено автор sehe, источник

1 ответы

Unintuitively, & is a command separator as well as a forker. That means you actually have three commands:

  ls -al & ; ls -al
# ^^^^^^^|^|^^^^^^^

... и Bash не поддерживает пустой оператор.

Вместо этого просто напишите:

  ls -al & ls -al

без точки с запятой.

25
добавлено
Linux Help
Linux Help
2 686 участник(ов)

Правила: https://telegra.ph/Pravila-Linux-Help-10-15

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

pro.bash
pro.bash
123 участник(ов)

All about Nix shells, signals, processes and development in general.

Linux Gaming RUS
Linux Gaming RUS
28 участник(ов)

Русскоязычный чатик, посвящённый играм на различных дистрибутивах Linux, а также wine, proton Arch Linux RU @ArchLinuxChatRU Gnome RU @gnome_ru