[SHELL] Проверить, что переменная это число
Здравствуйте!
Есть следующий кусок кода:
elif ! printf '%s\n' "$1" | grep '^[[:digit:]]\+$'; then
echo "Wrong number of test ($1). Should be a digit! Skipped." >&2
shift
Но при запуске в стандартном sh на SunOS вижу ругань:
./run_test.sh: !: not found
Как бы этот код сделать более портабельным?
(Пробовал grep -v, пробовал менять регулярное выражение на '^[^[:digit:]]\+$', но пока ничего не вышло..)
Заранее спасибо!