我正在努力改善我的编程环境,现在我需要在一个控制台中输出多个命令(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 1
或fg 2
将作业带回前台。
答案4
&
不连接命令。它在后台逐个启动。如果不需要在后台启动命令,只需使用;
而不是&
。