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

Я запустил это в своем поле Centos5:

ls -al & ; ls -al

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

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

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

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

Ответ 1

Неинтуитивно, & - это разделитель команд, а также форвард. Это означает, что у вас есть три команды:

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

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

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

  ls -al & ls -al

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