LINUX.ORG.RU

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

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

Для начала определитесь с тем, что вы называете «числом». Если «число» — это число, понимаемое ГНУ Башем, то есть целое положительное (возможно, с ведущим плюсом) или отрицательное, то это один из редких случаев, когда бывают полезны устаревшие одиночные квадратные скобочки.

[ "$i" -eq "$i" ] 2>&- || err "‘$i’ is not an integer"

Если что-то иное, то что-то иное.

P. S. err — это какая-то ваша функция обработки ошибок, разумеется. В простейшем случае:

err() {
    printf >&2 '%s\n' "$*"
    exit 1
}

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

Для начала определитесь с тем, что вы называете «числом». Если «число» — это число, понимаемое ГНУ Башем, то есть целое положительное (возможно, с ведущим плюсом) или отрицательное, то это один из редких случаев, когда бывают полезны устаревшие одиночные квадратные скобочки.

[ "$i" -eq "$i" ] 2>&- || err "‘$i’ is not an integer"

Если что-то иное, то что-то иное.