Это должен был быть простой скрипт, но ... все, что находится внутри для l oop, вообще не выполняется. Если оператор IF равен true, он проверяет оператор for "для pod в oc get pods | grep -i '^pat*' | awk '{print $1}'
" и возвращается к началу, пока l oop бесконечно. Если оператор IF ложен, он существует в сценарии. В этом случае оператор if всегда истинен, он должен в списке вывести имя модуля. После того, как я перенаправлю stderr оператора FOR на консоль с помощью 2>, я получу "command substitution: line 5: syntax error near unexpected token
newline '"`, учитывая, что для l oop содержит только команду echo
while true; do
check=$(curl --insecure https:...... | python -mjson.tool |head -2 |grep -i status|awk -F '"' '{print $4}')
if [ $check == "OK" ]; then
for pod in `oc get pods | grep -i '^pat*' | awk '{print $1}'`; do
echo $pod
done
else
exit 0
fi
done
Вывод отладки выглядит следующим образом:
+ true
++ python -mjson.tool
++ head -2
++ grep -i status
++ curl --insecure https:...
++ awk -F '"' '{print $4}'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 127 100 127 0 0 353 0 --:--:-- --:--:-- --:--:-- 354
+ check=OK
+ '[' OK == OK ']'
++ grep -i '^pat*'
++ awk '{print $1}'
++ oc get pods
+ true
++ head -2
++ python -mjson.tool
++ awk -F '"' '{print $4}'
++ curl --insecure https:...
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 127 100 127 0 0 415 0 --:--:-- --:--:-- --:--:-- 416
+ check=OK
+ '[' OK == OK ']'
++ awk '{print $1}'
++ grep -i '^pat*'
++ oc get pods
+ true
++ python -mjson.tool
++ head -2
++ grep -i status
++ awk -F '"' '{print $4}'
++ curl --insecure https:...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 127 100 127 0 0 423 0 --:--:-- --:--:-- --:--:-- 423
100 127 100 127 0 0 423 0 --:--:-- --:--:-- --:--:-- 423
+ check=OK
+ '[' OK == OK ']'
++ grep -i '^pat*'
++ awk '{print $1}'
++ oc get pods
+ true
....