У меня есть скрипт bash, который я хочу проверить вывод команды Linux. Команда: sudo supervisorctl status
Обычный вывод выглядит следующим образом:
0: tuxtunnel RUNNING pid 563, uptime 11 days, 5:04:19
1: util_pkt_logger STOPPED Oct 11 01:20 PM
2: watchdog EXITED Oct 11 12:03 PM
Моя первая попыткаскрипта bash читает эти выходные данные команды и помещает каждую строку в массив, к сожалению, когда я проверяю, содержится ли строка в этом результате, кажется, что она пытается выполнить проверку как команду. Мой сценарий выглядит следующим образом
echo "its stopped"
x=$(sudo supervisorctl status)
SAVEIFS=$IFS
IFS=$'\n'
x=(${x})
IFS=$SAVEIFS
for(( i=0; i<${#x[@]}; i++ ))
do
echo "$i: ${x[$i]}"
if [$x[$i]] =~"STOPPED" #check if array contains this string
then
echo "its stopped"
fi
done
exit 0
Когда я пытаюсь выполнить проверку, когда все идет наперекосяк, я новичок в сценариях bash, поэтому любая помощь будет принята с благодарностью. Я пытаюсь увидеть, содержит ли строка слово STOPPED