2012-04-16 181 views
0

我有一个bash脚本,应该检查一个程序的运行实例,如果它没有运行执行命令(回声测试目的)。问题是,即使我直接将命令复制/粘贴到命令行,bash也不会执行该命令。我想我的问题很简单,并且由我对脚本语言的天真所导致。Bash脚本没有执行命令

有问题的行:

ps -ef | grep -v grep | grep $SCRIPT > /dev/null || echo "`date` - $0 : $SCRIPT stopped. Restarting..." 

如果我将其粘贴到它的作品完美的命令行,但是当我运行我的脚本没有任何反应。建议?

编辑:我相信我已经解决了这个问题。时运行的脚本来检查queue_reader.sh剧本我愚蠢地命名为check_queue_reader.sh“所以ps -ef命令发现自己防止||的执行。

+0

提供了更多的代码作为上下文请 – Cfreak 2012-04-16 20:22:47

+2

你确定'$ SCRIPT'在bash脚本和之后被设置为相同的东西命令行? – jwodder 2012-04-16 20:23:26

+0

真的没有更多。我有一个需要运行的脚本,并将其放入crontab作业中,以便在需要时检查并重新启动该过程。我现在唯一剩下的脚本是变量,它不会提供任何情况。 – Grambot 2012-04-16 20:23:43

回答

0

查看原帖编辑。

我跑被称为脚本” check_queue_reader.sh“,并且正在使用grep搜索ps -ef作为”queue_reader.sh“,这导致脚本找到自己,从而无法通过检查||