Сохранить шаблон регулярных выражений в переменной в скрипте bash - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующий код скрипта bash:

GOAL="${1:-help}"
TARGET="${2}"
MODULES_LIST="app|tester"

echo "-> Running $TARGET..."
MODULES_LIST_PATTERN = "^($MODULES_LIST)$"
if [[ "$TARGET" =~ $MODULES_LIST_PATTERN ]]; then
    run_${TARGET}
else
    print_error "You must include an existing module: {$MODULES_LIST}"
    exit 1
fi

Как видите, у меня есть переменная MODULES_LIST, в которой хранятся модули, поддерживаемые приложением, затем я создаю шаблон регулярных выражений MODULES_LIST_PATTERN, содержащий значение предыдущего var, и использую его для проверки Параметр соответствует любому из модулей. Однако он не работает должным образом, так как при запуске ./myscript.sh run app он печатает ERROR] You must include an existing module: {app|tester}.

Может ли кто-нибудь сказать мне, как это сделать?

1 Ответ

0 голосов
/ 10 января 2019

Моя ошибка ... проблема в MODULES_LIST_PATTERN = "^($MODULES_LIST)$", вы не можете иметь пробелы вокруг знака равенства. После исправления все работает как положено.

...