The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Bash кириллица"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Bash кириллица"  –1 +/
Сообщение от Alex (??) on 20-Сен-17, 16:30 
простая операция сравнения:

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

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

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

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

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

например,

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Bash кириллица"  +/
Сообщение от Andrey Mitrofanov on 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 подрукой--))
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor