Шаблон, который вы используете, является ошибочным из-за "экранированных" символов и того факта, что -
не находится в конце / начале выражения в скобках.\
всегда рассматривается как буквенная обратная косая черта внутри скобочных выражений, они не образуют escape-последовательности.Дефис сложный, см. 9.3.5 RE Скобка Выражение , точка 7:
Символ <hyphen-minus>
должен рассматриваться как сам, если он встречается первым (после начального'^', если есть) или последняя в списке, или как конечная точка диапазона в выражении диапазона.
Использование
CONFIGURATION=m1si-ngxi-ddb01
#check configuration format
TMP_CONFIGURATION=",$CONFIGURATION"
re=',[a-zA-Z0-9_.-]+'
if ! [[ $TMP_CONFIGURATION =~ $re ]]
then
echo "configuration parttern mismatch."
exit 1
fi
См. онлайн-демонстрацию.Обратите внимание, что нет необходимости помещать CONFIGURATION
в фигурные скобки, $CONFIGURATION
= ${CONFIGURATION}
.