2014-02-21 3 views
0

Я пытаюсь выполнить ниже сценарий,сазе не показывает никаких выходных

data=$(printf "%s " $(find output.log -type f -exec grep 'ACTIVE\| NOT ACTIVE' {} \; | awk '{print $1}')) 
    status=`find output.log -type f -exec grep 'ACTIVE\| NOT ACTIVE' {} \; | awk '{print $3}'` 

    case "$data" in 
    ("Instance1") 

      echo "Status for Instance1 is : $status"; 
     ;; 
    ("Instance2") 

      echo "Status for Instance2 is : $status"; 
     ;; 
    "") echo "empty things" 
    ;; 
    esac 

, но он не показывает никакого вывода .. возможно я что-то не хватает в моем сценарии (может быть много)

logfile Я использую в приведенном выше скрипте, т.е. output.log,

INSTANCE_NAME OPEN_STATUS  STATUS 
---------------- ------------ ----------------- 
Instance1 OPEN   ACTIVE 

Instance2 OPEN   NOT ACTIVE 

Может кто-нибудь сказать мне, что случилось с выше сценария?

Спасибо,

+0

Спасибо Раджеш для редактирования в нужном формате – Mahesh

ответ

1

Вы не петлю на ваши записи, таким образом, вы никогда не имеют данных «Instance1», а «ЭКЗЕМПЛЯР1 instance2». Вы, вероятно, хотите что-то как следующее:

items=$(grep -0 'ACTIVE\| NOT ACTIVE' output.log | tr -s ' ') 
IFS=$'\r\n' 
for it in $items; do 
    data=$(echo $it | cut -d ' ' -f1) 
    status=$(echo $it | cut -d ' ' -f3-) 
    case "$data" in 
    ("Instance1") 
    echo "Status for Instance1 is : $status"; 
     ;; 
    ("Instance2") 
     echo "Status for Instance2 is : $status"; 
     ;; 
    "") echo "empty things" 
    ;; 
    esac; 
done 
+0

Он показывает требуемой мощности. Спасибо за все ваши усилия. – Mahesh

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