LINUX.ORG.RU

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

Исправление 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 - число.