Гость
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проблема со сравнением переменных, Bash / 6 сообщений из 6, страница 1 из 1
06.02.2019, 09:54
    #39769952
lovely_kayt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
Написала такой простенький скрипт. В pipeline.state.txt содержится лишь одна строка: run = 1.
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function main()
{
	local resourcesDir='resources/'
        local pipelineState=0
	local expectedState=1
	
	while [ "$pipelineState" ]
	do
		pipelineState=`grep -c 'run = 0' $resourcesDir'pipeline.state.txt'`
		echo $pipelineState
	done	
}

main



В цикле While пробовала вводить различные комбинации: [ $pipelineState -ne $expectedState ]
Проверяла оба значения $pipelineState, $expectedState на тип таким образом:
Код: powershell
1.
2.
if (echo "$1" | grep -E -q "^?[0-9]+$"); then
    echo "Number"


Результат: оба значения - числа.
Проблема в том, что консоль выводит последовательность нулей или единиц, при использовании "!="... Но не выходит из цикла.
При использовании оператора "-ne" вместо "!=" одна итерация цикла проходит нормально, а вторая выводит ошибку: : integer expression expected 1 -ne.
...
Рейтинг: 0 / 0
06.02.2019, 10:44
    #39769983
Лысый дядька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function main(){
    local state=0
    while [[ $state = 0 ]]
    do
       state=$(grep -c 'run = 0' pipeline.state.txt)
       echo got state = $state
    done
    echo OK
}

main
...
Рейтинг: 0 / 0
06.02.2019, 11:21
    #39770013
lovely_kayt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
Лысый дядька,

Я не знаю, что за чудеса происходят, но не смотря на то, что state после вычисления по прежнему равен нулю, цикл завершился(
...
Рейтинг: 0 / 0
06.02.2019, 11:55
    #39770061
bga83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
lovely_kaytЛысый дядька,

Я не знаю, что за чудеса происходят, но не смотря на то, что state после вычисления по прежнему равен нулю, цикл завершился(

при работе под виндой могут быть неожиданности, так что лучше все же именно в линуксе все это гонять
...
Рейтинг: 0 / 0
06.02.2019, 13:11
    #39770120
yooo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
А лучше всего отказаться от Bash как от богомерзкого извращения (имхо) и писать в python
...
Рейтинг: 0 / 0
06.02.2019, 19:25
    #39770383
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема со сравнением переменных, Bash
попробуйте
[ $state == 0 ]
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проблема со сравнением переменных, Bash / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]