2014-01-16 2 views
0

может кто-нибудь, пожалуйста, помогите мне со следующим сценарием почему использование функция не возвращает его значение при вызове, если оператор, он ничего не возвращает на выполнение сценариявызов функции, если оператор не возвращает ничего

#! /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

любое предложение для поиска запущенного процесса ?! –

Смежные вопросы