- Bash кириллица, someone_somewhere, 17:12 , 20-Сен-17 (1)
> простая операция сравнения: > if [ $dd -eq "1" ] ; > then > echo "ura" ; > fi > если dd равна 2, то все работает, а если "п" > то получаем: > integer expression expected Вы сравниваете строку с числом > что с этим можно поделать ? man test. Совсем в кратце используйте = для сравнения строк.
- Bash кириллица, Igor, 14:55 , 26-Сен-17 (3)
>[оверквотинг удален] >> if [ $dd -eq "1" ] ; >> then >> echo "ura" ; >> fi >> если dd равна 2, то все работает, а если "п" >> то получаем: >> integer expression expected > Вы сравниваете строку с числом >> что с этим можно поделать ? > man test. Совсем в кратце используйте = для сравнения строк.на случай если $dd пустое if [ "AAA$dd" = "AAA1" ]
- Bash кириллица, Andrey Mitrofanov, 16:12 , 26-Сен-17 (4)
>[оверквотинг удален] >>> 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, 08:43 , 21-Сен-17 (2)
> простая операция сравнения: > if [ $dd -eq "1" ] ; if [ $dd -eq "1" ] &>/dev/null ; > then > echo "ura" ; > fi > что с этим можно поделать ? например,
|