我正在尝试编写一个Shell脚本(用于Mac OSX Termninal),它将运行一条命令来启动一个开发服务器(gulp serve)。我有它的工作,除了服务器连续运行,所以它不允许我在同一窗口中输入后续命令而不停止服务器(Control + C)。我的问题是,有没有一种方法可以在后台运行进程和/或禁止任何/所有输出?我的目标是写一个'停止服务器'命令,将会终止进程(我也不确定该怎么做)。我已经尝试了使用&符号和/ dev/null的所有组合,并且没有什么效果。这是我到目前为止有:如何在后台运行shell命令并禁止所有输出?
if [ "$1" = "server" ]
then
if [ "$2" = "on" ]
then
cd/& gulp serve --gulpfile /server/example/gulpfile.js # the output is still shown
printf "\033[0;32mserver is online.\033[0m\n"
else
killall tail &>/dev/null 2>&1 # this doesn't kill the process
printf "\033[0;32mportals is offline.\033[0m\n"
fi
fi
这样做的窍门,谢谢你的回答和详细的解释!感谢@Diego Torres Milano! – robmarston