2015-06-23 2 views
3

Как я могу получить статус из команды, которая присваивается переменной?Возврат статуса команды, возвращающей данные в переменную

Например:

#! /bin/bash 

### GET PID 
GETPID=$(ps aux | grep "bash" | grep -v "grep" | awk '{print $2 }') 

if [ "$?" = "0" ]; then 
    echo "status OK" 
else 
    echo "status NOT OK" 
fi 
+0

Если вы хотите, чтобы ваш текущий идентификатор процесса, вы можете использовать '' $$ -> '' $$ эхо. Что касается самого вопроса, ваше условие 'if' проверяет целое число, поэтому вы хотите сказать' if ["$?" -eq 0] "' ... то есть, используйте '-eq' для проверки равенства в целых числах. – fedorqui

+0

Я не понимаю здесь вопроса ... вы хотите, чтобы результат команды или статус выхода, или (или что)? –

+0

@fedorqui - Спасибо за комментарии, связанные с целым числом сравнения. Но мне также нужно, чтобы в моем скрипте проверялась, что какая-либо команда возвращает плохой статус или нет (например, кто-то, кто запускает скрипт, не разрешает запускать другой скрипт. ..) – peterko

ответ

1

Как об этом:

PID=($(pidof bash)) 
if [[ ${#PID[@]} -gt 0 ]]; then 
    echo "status OK" 
else 
    echo "status not OK" 
fi 
Смежные вопросы