为什么`ls -al&; ls -al`无效?

Lig*_*ica 10 linux bash

我在Centos5盒子上运行了这个:

ls -al & ; ls -al
Run Code Online (Sandbox Code Playgroud)

我期待它ls -al在后台运行,同时ls -al在前台运行,并演示如何通过这样做来终止输出到终端.

但是,我得到:

-bash:意外标记附近的语法错误`;'

如何在同一行上写这两个命令?

Lig*_*ica 25

不直观地,&是一个命令分隔符和一个forker.这意味着你实际上有三个命令:

  ls -al & ; ls -al
# ^^^^^^^|^|^^^^^^^
Run Code Online (Sandbox Code Playgroud)

...而Bash不支持空语句.

相反,只需写:

  ls -al & ls -al
Run Code Online (Sandbox Code Playgroud)

没有分号.