我收到错误:
bash:意外标记附近的语法错误`;'
由于以下命令:
evince foo.pdf bar.pdf &; emacs foo.tex &
Run Code Online (Sandbox Code Playgroud)
我;在&用于后台作业时将命令分开是否违法?或者还有其他原因这不起作用?
谢谢你。
The*_*heo 47
你不需要分号。在它被发送到后台后,它可以自由地获得另一个命令。
evince foo.pdf bar.pdf & emacs foo.tex &
Run Code Online (Sandbox Code Playgroud)
小智 16
顺便说一句,核心问题是(Bourne 派生的)shell 不允许空命令。
“;” 和 "&" 是命令终止符,分别表示 fg 和 bg。所以 ”; ;” (或行首的“;”)也是无效的。
(如果有一个尚未终止的命令,换行符意味着“;”,除非您使用“\”来继续该行。)
这些政策的语言差异很大:
C 派生语言允许空语句。
Pascal 和 PERL 有分隔符,而不是终止符。