LINUX.ORG.RU

История изменений

Исправление Desmond_Hume, (текущая версия) :

Незаданные переменные равны пустым строкам.

Почему тогда не выдаётся ошибка о том, что это non-integer значение?

Шелл не ИИ, он не думает за тебя. Оболочка обрабатывает некоторые последовательности до передачи команде. Если нужно передать без обработки, используй экранирование или одинарные кавычки.

$ expr '5' '*' '4'
20
$ expr 5 '*' 4
20

Вот так работает, да. Но экранирование - это один знак, печатать быстрее.

Исходная версия Desmond_Hume, :

Незаданные переменные равны пустым строкам. Почему тогда не выдаётся ошибка о том, что это non-integer значение?

Шелл не ИИ, он не думает за тебя. Оболочка обрабатывает некоторые последовательности до передачи команде. Если нужно передать без обработки, используй экранирование или одинарные кавычки.

$ expr '5' '*' '4'
20
$ expr 5 '*' 4
20

Вот так работает, да. Но экранирование - это один знак, печатать быстрее.