Bash:检查主机名是否为v-q *如何使用通配符?

我有一个代码,如果主机名与v-qai01或任何其他v-q *服务器匹配,我需要它回显1:
if [ `hostname -s` -eq `v-q*` ]; then
        echo "1"
fi

我有几个错误

./run.sh: line 3: v-q*: command not found
./run.sh: line 3: [: v-qai01: unary operator expected

有什么建议吗

如果我有一个病例怎么办?

hostname=`hostname -s`

portalesWildcard=v-*ws*
qaiservers={'v-qai01' 'v-qai02'}
portales={'t1wsyellar01' }


if [[ ${hostname} = ${qaiservers} ]]; then
    echo "yes"
fi

谢谢

使用双方括号,=运算符将接受通配符:
#!/bin/bash

if [[ $(hostname -s) = v-q* ]]; then
    ...
fi

当您需要更多高级字符串匹配时,它还具有用于正则表达式匹配的=〜运算符。这将检查主机名也以一个或多个数字结尾:

#!/bin/bash

if [[ $(hostname -s) =~ ^v-q.*[0-9]+$ ]]; then
    ...
fi

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...