Bash变量 - 定义多个可能的预期值

时间:2016-01-13 08:57:50

标签: bash variables variable-subsitution

如果之前已经回答过,请道歉,但我无法在线找到。

这是我想要完成的事情:

if [[ "${hostname}" = (foo | bar)servername(01 | 02 | 03) ]]; then var="foobarfoo"
fi

使用以下任何一项符合标准:fooservername01,barservername02,fooservername03,barservername03等。

我以更低效的方式完成了这项任务:

if [[ ${hostname} == "fooservername01" ]] || [[ ${hostname} == "fooservername02" ]] || [[ ${hostname} == "fooservername03" ]] || [[ ${hostname} == "barservername01" ]] || [[ ${hostname} == "barservername02" ]] || [[ ${hostname} == "barservername03" ]]; then var="foobarfoo"
fi

但我希望优化/简化代码。

任何见解都会受到赞赏,因为我仍然非常擅长于编写脚本甚至是脚本。

TIA

1 个答案:

答案 0 :(得分:-1)

在Unix社区找到解决方案,我也发布了这个问题:

https://unix.stackexchange.com/q/255036/13792

if [[“$ {host}”== @(euslc | eulvs)prdapp @(05 | 22 | 23)]];然后