Исправление krasnh, (текущая версия) :
Кстати, именно для юзеров, плохо разбирающихся в скриптах (таких как я :)), и существует уже очень давно сервис shellcheck.net. Так же, в виде пакетов в дистрах (shellcheck 0.8.0-228).
Проверка в нем для данного скрипта:
Line 2:
if ! [[ $1 =~ '^[0-9]+$' ]]; then
^-- SC2076 (warning): Remove quotes from right-hand side of =~ to match as a regex rather than literally.
Исправленное:
#!/usr/bin/env bash
if ! [[ $1 =~ ^[0-9]+$ ]]; then
echo "$1 не является числом." >&2
exit 1
fi
echo "$1 - число."
И результат:
$ ./test.sh 5
5 - число.
Исходная версия krasnh, :
Кстати, именно для юзеров, плохо разбирающихся в скриптах (таких как я :)), и существует уже очень давно сервис shellcheck.net. Так же, в виде пакетов в дистрах.
Проверка в нем для данного скрипта:
Line 2:
if ! [[ $1 =~ '^[0-9]+$' ]]; then
^-- SC2076 (warning): Remove quotes from right-hand side of =~ to match as a regex rather than literally.
Исправленное:
#!/usr/bin/env bash
if ! [[ $1 =~ ^[0-9]+$ ]]; then
echo "$1 не является числом." >&2
exit 1
fi
echo "$1 - число."
И результат:
$ ./test.sh 5
5 - число.