2012-04-16 212 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「,這導致腳本找到自己,從而無法通過檢查||