我正在尝试使用emacs
单个命令从终端打开 2 个单独的窗口/实例。我努力了:
emacs &; emacs &
(错误:bash:syntax error near unexpected token ;
和
emacs & && emacs &
(错误:bash:syntax error near unexpected token &&
但这两种方法都会产生错误。我怎样才能在一个命令中生成 2 个 emacs 窗口来出现?
答案1
命令之间只需要单个分隔符:;
或&
或&&
等,所以尝试
emacs & emacs &
如果您运行,emacs &; emacs &
那么您会在后台启动 emacs,然后在;
没有任何命令的情况下运行,因此bash
声称它不希望出现此分隔符 ( syntax error near unexpected token ;
)。
仅仅运行 bare 就会得到类似的错误;
:
bash$ > ;
bash: syntax error near unexpected token `;'
并非所有 shell 都这样做,例如zsh
您甚至可以这样做
zsh$> ; ; ls; ; ls&; ls&; ; ls &; ;
没有任何问题(但不是;;
没有中间的空格),因为它本身就是一个分隔符,在case
语句中使用)。
您尝试的另一件事emacs & && emacs &
更糟糕,因为&&
只有第一个命令成功结束时才应运行第二个命令(在 后)(这就是&&
所做的)。但是,由于我们在后台 shell 中运行第一个命令不会等待其完成,因此该条件没有多大意义。再次强调:在命令之间仅使用单个分隔符,command1 & command2
或者最终command1 && command2
。