1

なぜzshでこれを行うことができますか?

zsh$ sleep 5 &; echo foo
[1] 14742
foo

しかし、bashではありませんか?

bash$ sleep 5 &; echo foo
bash: syntax error near unexpected token `;'

bashで同等のことを行う方法はありますか?

4

2 に答える 2

10

私は通常は使用しませんzshが、これは同等のようです:

sleep 5 & echo foo

でも動作しzshます。

zshのドキュメントを確認しましたが、組み合わせに特別な意味はありません&;。これは、バックグラウンドコマンドの後に空のコマンドが続くだけのようですが、無視されます。bash一方、空のコマンドは許可されません。次のように入力すると、同じエラーが発生します。

; echo foo
于 2012-11-19T19:07:26.683 に答える
0

これを行う1つの方法は、バックグラウンドプロセスのサブシェルを生成することです。

bash$ (sleep 5 &); echo foo

しかし、それがあなたが探している意味で厳密に同等であるかどうかはわかりません。

于 2012-11-19T19:07:08.010 に答える