Почему не работает цикл в bash?

Добрый день! Мне необходимо написать скрипт для проверки длины массива в цикле, но что то не получается(, собственно сам скрипт:
#!/bin/bash
#останавливаем службу
systemctl stop libvirt-guests
#объявляю массив и складываю в него результаты команды
unset array
array=(`virsh list | grep running | awk '{print $2}'`)
lenArr=${#array[@]}
#вот тут необходимо в бесконечном цикле проверять пока длина массива не будет равна 0
#и только тогда выполнить echo.
state=false
while [ state = true ]
        do
        if  [ "$lenArr" -eq 0 ] ; then
                echo "shutdown success"
                state=true
                break
        else
                continue
        fi
done
  • Вопрос задан
  • 594 просмотра
Решения вопроса 2
urtow
@urtow
*nix, python, QA, bagpipe, folk music
state=false
while [ state != true ]
        do
        if  [ "$lenArr" -eq 0 ] ; then
                echo "shutdown success"
                state=true
                break
        else
                continue
        fi
done


Ты ставишь state равным false, а потом сравниваешь его с true, у тебя стоит проверка на равенство, а надо проверять на НЕ равенство по логике :)
Ответ написан
Комментировать
@strelmax
state=false
while [ state != true ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы