если еще с сравнением чисел в сценарии оболочки - PullRequest
0 голосов
/ 18 июня 2019

У меня есть этот код:

#!/bin/env bash
output=$(echo -e 'get mykey\r' | nc localhost 11211 | awk 'NR==2');
echo "$output"

typeset -i output=0

if [ $output -eq 0 ];

then
   echo "User exists"
else
   echo "User doesn't exists"
 fi

в приведенном выше коде фактический вывод строки output=$(echo -e 'get mykey\r' | nc localhost 11211 | awk 'NR==2'); без флага awk 'NR==2':

VALUE mykey 0 1
0
END 

код echo "$ output" с awk 'NR==2' выводит значение 0 или что-то еще во второй строке в вышеприведенном выводе.

Код всегда дает User Exists, даже если на выходе есть какое-то другое число, отличное от 0.

Почему сравнение здесь не работает?

1 Ответ

2 голосов
/ 18 июня 2019

Синтаксические проблемы в стороне, вот что вы делаете:

output="some value"
output=0
if [ $output -eq 0 ]; then ...

Не переназначайте переменную после захвата начального значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...