Как прочитать вывод предыдущей команды, а затем перейти к следующей команде - PullRequest
0 голосов
/ 10 мая 2019

Я хотел написать скрипт, который будет выполнять следующую команду, только если предыдущая команда была успешной.

В качестве части скрипта я пытаюсь добавить файлы.Как только команда для добавления файла успешно выполнена, я получаю сообщение, подобное следующему:

May 10, 2019 5:57:12 AM com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection findInitialEndpoint
INFO: CWWKX0230I: The collective member opened JMX client to the collective controller: ncr-aus-e171.corp.wayport.net:9081
May 10, 2019 5:57:12 AM com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection findInitialEndpoint
INFO: CWWKX0230I: The collective member opened JMX client to the collective controller: ncr-aus-e171.corp.wayport.net:9081
Successfully pushed policy to server

Как только я получаю сообщение «Успешно передана политика на сервер», я хотел, чтобы скрипт выдвинул следующий файл,(так для 50 разных файлов)

Может кто-нибудь дать мне знать, как это реализовать?

1 Ответ

0 голосов
/ 10 мая 2019

попробуйте это:

#!/bin/bash
Commands=(
  "command1 parameter1 parameter2"
  "command2 parameter1"
  "command3 parameter1 parameter2 parameter3"
)

tmplog=$(mktemp)
for cmd in "${Commands[@]}"; do
   echo "$cmd"
   $cmd >"$tmplog"
   tail -1 "$tmplog" | grep -v "^Successfully" && break
done
rm "$tmplog"
...