простая операция сравнения:if [ $dd -eq "1" ] ;
then
echo "ura" ;
fiесли dd равна 2, то все работает, а если "п"
то получаем:
integer expression expectedчто с этим можно поделать ?
> простая операция сравнения:
> if [ $dd -eq "1" ] ;
> then
> echo "ura" ;
> fi
> если dd равна 2, то все работает, а если "п"
> то получаем:
> integer expression expectedВы сравниваете строку с числом
> что с этим можно поделать ?
man test. Совсем в кратце используйте = для сравнения строк.
>[оверквотинг удален]
>> if [ $dd -eq "1" ] ;
>> then
>> echo "ura" ;
>> fi
>> если dd равна 2, то все работает, а если "п"
>> то получаем:
>> integer expression expected
> Вы сравниваете строку с числом
>> что с этим можно поделать ?
> man test. Совсем в кратце используйте = для сравнения строк.на случай если $dd пустое
if [ "AAA$dd" = "AAA1" ]
>[оверквотинг удален]
>>> 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"'((у меня здесь s/bash -c/dash -c/ также кажет то же. Из других только rbash подрукой--))
## :
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
$ _
> простая операция сравнения:
> if [ $dd -eq "1" ] ;if [ $dd -eq "1" ] &>/dev/null ;
> then
> echo "ura" ;
> fi
> что с этим можно поделать ?например,