在一个控制台中输出多个命令的最佳方法是什么?

在一个控制台中输出多个命令的最佳方法是什么?

我正在努力改善我的编程环境,现在我需要在一个控制台中输出多个命令(coffeescript/sass 编译和单元测试)。这可以通过使用以下命令连接命令来实现&

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/

但当我想完成工作并关闭它们并按下时,ctrl+c它们仍会在后台运行,我必须手动关闭它们。我该如何解决这个问题并能够一次关闭所有这些命令?

目前我只能想到做一个咕噜任务将运行多个命令,但使用 grunt 似乎对这样的任务来说有点过度了。有没有更简单/替代的方法?

答案1

(注意:您一次只能显示一个程序/任务。另外,某些程序无法通过apt-get这种方式正常工作。)


首先,&在行尾添加一个符号,使得该行如下所示:

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/ &

这也将最后一个程序置于后台。


然后,输入jobs列出程序。然后您将得到类似于以下内容的输出:

karma start [1]
coffee -o js/app -cw coffee/ [2]
sass --watch sass/:css/ [3]

要将程序调到前台,请输入fg,然后输入程序编号。例如,要将其调到karma start前台,请输入fg 1。要将其放回后台,请按Ctrl+ Z。根据需要重复。

答案2

只需杀死终端...这将杀死它正在运行的所有命令,除非你采取特殊的预防措施,例如dtach......

答案3

使用job列出你的命令,你会看到类似这样的内容

karma start [1]
coffee -o js/app -cw coffee/ [2]

使用fg 1fg 2将作业带回前台。

答案4

&不连接命令。它在后台逐个启动。如果不需要在后台启动命令,只需使用;而不是&

相关内容