>[оверквотинг удален]
>>> 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 подрукой--))