0

我正在尝试创建一个简单的 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
4

1 回答 1

2

好吧,您要启动应用程序两次,我认为第一个是挂起的应用程序,当您通过管道将其输出到 grep 来检查它是否存在时。您可能想做这样的事情Check if a program exists from a Bash script先检查它是否存在,而不是启动应用程序。

于 2012-09-27T21:40:12.707 回答