URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10181
[ Назад ]

Исходное сообщение
"Bash кириллица"

Отправлено Alex , 20-Сен-17 16:30 
простая операция сравнения:

if [ $dd -eq "1" ] ;
then
  echo "ura" ;
fi

если dd равна 2, то все работает, а если "п"
то получаем:
integer expression expected

что с этим можно поделать ?


Содержание

Сообщения в этом обсуждении
"Bash кириллица"
Отправлено someone_somewhere , 20-Сен-17 17:12 
> простая операция сравнения:
> if [ $dd -eq "1" ] ;
>  then
>   echo "ura" ;
> fi
> если dd равна 2, то все работает, а если "п"
> то получаем:
> integer expression expected

Вы сравниваете строку с числом

> что с этим можно поделать ?

man test. Совсем в кратце используйте = для сравнения строк.


"Bash кириллица"
Отправлено Igor , 26-Сен-17 14:55 
>[оверквотинг удален]
>> if [ $dd -eq "1" ] ;
>>  then
>>   echo "ura" ;
>> fi
>> если dd равна 2, то все работает, а если "п"
>> то получаем:
>> integer expression expected
> Вы сравниваете строку с числом
>> что с этим можно поделать ?
> man test. Совсем в кратце используйте = для сравнения строк.

на случай если $dd пустое
if [ "AAA$dd" = "AAA1" ]


"Bash кириллица"
Отправлено Andrey Mitrofanov , 26-Сен-17 16:12 
>[оверквотинг удален]
>>>   echo "ura" ;
>>> fi
>>> если dd равна 2, то все работает, а если "п"
>>> то получаем:
>>> integer expression expected
>> Вы сравниваете строку с числом
>>> что с этим можно поделать ?
>> man test. Совсем в кратце используйте = для сравнения строк.
> на случай если $dd пустое
> if [ "AAA$dd" = "AAA1" ]

Кавычек достаточно, вроде.

А тадиционная записьX$var не работает с пробелами (но работатает, пока известно, что "слово" одно или "пусто").

$ bash -c 'isE() { echo "## $1:";[ X$1 = X ] && echo Empty || echo not;}; isE ""; isE 0; isE "1 2 3"'
## :
Empty
## 0:
not
## 1 2 3:
bash: line 0: [: слишком много аргументов
not
$ bash -c 'isE() { echo "## $1:";[ "$1" = "" ] && echo Empty || echo not;}; isE ""; isE 0; isE "1 2 3"'
## :
Empty
## 0:
not
## 1 2 3:
not
$ _
((у меня здесь s/bash -c/dash -c/ также кажет то же. Из других только rbash подрукой--))

"Bash кириллица"
Отправлено Andrey Mitrofanov , 21-Сен-17 08:43 
> простая операция сравнения:
> if [ $dd -eq "1" ] ;

if [ $dd -eq "1" ] &>/dev/null ;

>  then
>   echo "ura" ;
> fi
> что с этим можно поделать ?

например,