Bash:检查主机名是否为v-q *如何使用通配符?
发布时间:2020-12-15 19:07:01 所属栏目:安全 来源:网络整理
导读:我有下一个代码,如果主机名与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 有
我有下一个代码,如果主机名与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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |