2014-01-16 91 views
0

任何人都可以請幫我用下面的腳本爲什麼使用功能沒有返回if語句調用的時候它的價值,它返回上執行腳本呼叫if語句沒有返回值的函數

#! /bin/bash 

function usage() 
{ 
    echo "Please enter a valid process name that is currently running after the execution command" 
} 

if [ `echo $(ps -ef) | grep -c "$1"` -eq 0 ] then 
    **usage** 
elif [ `echo $(ps -ef) | grep -c "$1"` -gt 0 ] then 
    Path=`ps -ef | grep "$1" | grep -v "grep" | awk '{print $2}'` 
    echo "$Path" 
fi 

回答

1

什麼您的第一個和第二個if/elif條件未被滿足。因此該腳本不返回任何值。

您可以通過添加一個最終if語句來測試,該語句只是迴應「無條件滿足」。

+0

感謝您的及時回覆,我試着把最後的陳述並沒有發生,第二個條件正常工作,但第一個和測試什麼也沒有返回。 –

+0

正確的答案,但你應該指出「\'echo $(ps -ef)| grep -c」$ 1「\'」是一種痛苦的,顯然是非工作方式來搜索正在運行的進程。祝你們好運。 – shellter

+0

任何建議尋找正在運行的進程?! –