我想提出一个脚本,可以做几台机器相同的任务,像这样:猛砸模式内匹配[试块
#!/bin/bash
if [[ hostname = login.machine1 ]]; then
#do things how they are done on machine1
...
elif [[ hostname = login.machine2 ]]; then
#etc.
fi
问题:有些机器有几个登录节点,就像login1.machine2
,login2.machine2
,等我都试过壳模式匹配和正则表达式,但他们没有工作:
if [[ hostname = login?.machine2 ]]
if [[ hostname == login?.machine2 ]]
if [[ hostname =~ login[0-9].machine2 ]]
if [[ hostname =~ login[0-9]\.machine2 ]]
,并至少有十几个类似的图案,带有或不带引号等什么是做一个测试,将返回正确的方式如果hostname = login1.machine2或login2.machine2,则为true TC?积分可与[
配合使用,而不是[[
。
我建议使用变量'$ HOSTNAME'或out放命令主机名:'$(主机名)'。 – Cyrus
我不知道你使用的是什么样的shell。但在bash中'if [[$(hostname)= login?.machine2]]'这将检查主机名是否等于字符串“login?.machine2” – naab