为什么“ls -al & ; ls -al”无效?

10

我在我的Centos5服务器上运行了这个:

ls -al & ; ls -al

我本来希望它后台运行 ls -al,同时前台并发运行ls -al,以演示这样做会使终端输出变得混乱。

然而,我却得到了:

-bash: syntax error near unexpected token `;'

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


4
@thatotherguy 我想我已经找那个网站找了很长时间了.....! - Lightness Races in Orbit
@thatotherguy 哇,太棒了。 - sehe
2
虽然那是一个方便的网站,但并不能使这样的问题变得错误。 - thecoshman
你的命令中缺少了一个冒号。你本可以这样说:ls -al & : ; ls -al。表情符号很好。 - devnull
1个回答

25

出乎意料的是, & 同时也是一个命令分隔符和一个分叉器。这意味着您实际上有三个命令:

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

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

相反,只需写:

  ls -al & ls -al

没有分号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接