在后台运行命令,在同一行中在前台运行另一个命令

时间:2014-09-25 13:45:01

标签: bash

我想在同一行中运行2个命令(command1和command2),其中command1启动后台进程,command2启动前台进程。

我试过了:

command1 & ; command2

但它说:“-bash:语法错误附近意外令牌`;'”

如何在同一行中运行2个命令?

2 个答案:

答案 0 :(得分:2)

;在这里没有帮助。在第一个命令(感谢Nick Russo in comments)之后,您需要的控制运算符为&

command1 & command2

来自man bash

  

如果命令由控制操作符&终止,那么shell   在子shell中在后台执行命令。外壳确实如此   不要等待命令完成,返回状态为0。

     

;分隔的命令按顺序执行; shell等待   为每个命令轮流终止。返回状态是退出   最后一个命令的执行状态。

测试

$ sleep 10 & echo "yes"
[2] 13368
yes
$ 
[1]-  Done                    sleep 10
$ 

答案 1 :(得分:2)

试试这个:

(command1 &); command2

语法(command)正在创建一个"子shell"。您可以阅读here有关它的内容。

相关问题