我在多台机器上运行我的shell脚本,所有这些机器都可以在不同的数据中心。
abc
数据中心,那么我根本不想睡觉并继续前进到shell脚本中的下一行。def
数据中心,那么我想睡30分钟,然后我将移动到shell脚本的下一行。pqr
数据中心,那么我想睡60分钟,之后我将移动到shell脚本的下一行。我的机器名称是这样的,它将始终如您所见,数据中心名称始终位于.host.com
之前,它将只是这样。
machineA.abc.host.com
machineB.def.host.com
machineC.pqr.host.com
machinef-12341.testra.abc.host.com
.....
在我的下面的shell脚本中,我已经将机器名存储在HOSTNAME
变量中,那么如何从shell脚本中提取数据中心名称并应用上述条件?我需要在.host.com
之前提取数据中心名称,所以我需要从最后开始?
#!/usr/bin/env bash
HOSTNAME=$hostname
.....
// I want to execute this line after the above if/else if logic
echo "Hello World"
最好的方法是什么?我可以将这些行分成变量,但是如何得到我需要的相关部分然后在这里应用if / elseif逻辑?
答案 0 :(得分:0)
testloop中的两种不同解决方案:
hosts="machineA.abc.host.com machineB.def.host.com machineC.pqr.host.com machinef-12341.testra.abc.host.com"
for testhost in ${hosts}; do
echo "sed ${testhost}: $(sed 's/.*\.\([^.]*\).host.com$/\1/' <<< "${testhost}")"
echo "cut ${testhost}: $(rev <<< "${testhost}"|cut -d"." -f3 | rev)"
done