gpt4 book ai didi

regex - 检查参数是否不匹配具有两个可能值的正则表达式?

转载 作者:行者123 更新时间:2023-12-01 23:31:10 24 4
gpt4 key购买 nike

这是我在我的一个 bash 脚本中尝试做的事情。

如果 SERVER_ENV 不是 PRODTEST,脚本必须退出。

check-server-env() {
local SERVER_ENV="$1"
if ! [[ "$SERVER_ENV"^^ =~ ^(TEST|PROD)$ ]]; then
error "$(highlight "$SERVER_ENV")" " does not exist."
echo "Exiting script..."
echo ""
exit 0
fi
}

我调用 script.sh TEST

SERVER_ENV=$1

check-server-env $SERVER_ENV

这是我的调用方式。而且它不起作用。我做错了什么?

最佳答案

您可以使用:

check-server-env() {
local SERVER_ENV="$1"

if [[ ! "${SERVER_ENV^^}" =~ ^(TEST|PROD)$ ]]; then
error "$(highlight "$SERVER_ENV")" " does not exist."
echo "Exiting script..."
echo ""
exit 0
fi
}

但是您可以放弃正则表达式并在 bash 中使用 extglob 匹配:

check-server-env() {
local SERVER_ENV="$1"

if [[ "${SERVER_ENV^^}" != @(TEST|PROD) ]]; then
error "$(highlight "$SERVER_ENV")" " does not exist."
echo "Exiting script..."
echo ""
exit 0
fi
}

关于regex - 检查参数是否不匹配具有两个可能值的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66227441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com