我正在尝试创建一个简单的bash脚本,它将从命令行启动应用程序并将STDOUT和STDERR输出重定向到/ dev / null。我还希望包含在脚本失败时提供反馈的功能。
该脚本几乎可以使用,但我无法在后台启动应用程序。我试过使用nohup,disown,将if语句包装在“(if ... fi)&”中,将else语句包装在“{...;}&”中,但我尝试的所有内容都已经介绍新问题或根本没有问题。
有什么建议吗?
以下是我正在做的基本版本:
#!/bin/bash
read -p "Enter program name: " APP
if
$APP 2>&1 | grep -q "command not found"
then
echo "That didn't work."
else
$APP >/dev/null 2>&1 &
fi
答案 0 :(得分:2)
嗯,你正在启动应用程序两次,我认为第一个是悬挂的,当你通过将它的输出管道输出到grep来检查它是否存在时。您可能希望执行类似Check if a program exists from a Bash script之类的操作来检查它是否存在而不是启动应用程序。