这是我用来运行grunt“global”的脚本。它是在一个bash shell中,所以我想要更多的上下文,所以我想回归字符,以便在我运行beast watch
时更加“沉默”。
beast() {
cd ~/root_install/grunt
local a="$1"
if [ $# -eq 0 ]
then
grunt &
fi
if [ $# -eq 1 ]
then
grunt "$a" &
fi
cd ~/root
}
我想在这个部分找一个回归角色:
grunt "$a" &
& 后的
答案 0 :(得分:0)
当您运行grunt时,您将获得以下退出代码之一。
你可以做的就是像grunt "$a" &>/dev/null
一样抓住它,然后使用$?
因此,您可以对返回代码执行if [ $? -eq 0 ]
之类的控件。
&>/dev/null
这只是2>& 1
它将文件描述符2和1(STDERR& STDOUT)重定向到/ dev / null
答案 1 :(得分:0)
如果您想要返回值,请为其指定返回值$?
:
grunt "$a" > grunt.log 2>&1
returnvalue=$?
您可以将grunt.log更改为/ dev / null。
在cd ~/root
之后,您可以return ${returnvalue}
。
当您希望grunt在后台运行时,您可以将行更改为
nohup grunt "$a" > grunt.log 2>&1 &
这将给你一个新的挑战:当在后台启动成功并且grunt在2秒内失败时,你的$? returnvalue不会注意到这一点
如何处理?
当returnvalue为0时,等待一段时间(20秒?)并检查日志文件。