Bash 脚本在参数中寻找字符串来设置变量

Bash Script looking for string in parameter to set a variable

我对 linux 还很陌生,对编程语言不是很了解。 我正在寻找一种方法来将变量 (var2) 设置为给定值,具体取决于匹配 var1

中的 MAc 地址的最后 3 个字节

这是一个例子:

var1="AA:BB:CC:DD:EE:FF"

这是我根据 mac 地址的最后 3 个值进行的“查找 table”

DD:EE:FF > var2="Home"
AB:CD:EF > var2="Garage"
FE:DC:GH > var2="Bedroom1"
... (Max 20)

重要事项:“查找 table”需要“可读”,因为它需要易于配置。否则我会使用非常难看的 IF 语句。 :-)

感谢所有愿意花时间帮助我的人。

我会简化table(以下简称table.txt):

DD:EE:FF Home
AB:CD:EF Garage
FE:DC:GH Bedroom1

然后这有效:

SUFF=$(echo  | cut -d ':' -f4-)
echo $SUFF
RES=$(grep ^$SUFF table.txt | cut -d ' ' -f 2)
echo $RES

示例:

> ./run.sh AA:BB:CC:DD:EE:FF
DD:EE:FF
Home

我想你可以从这里为你的脚本调整它。

看来您只需要 case 声明即可。

case $var1 in
 *:DD:EE:FF) var2="Home";;
 *:AB:CD:EF) var2="Garage";;
 *:FE:DC:GH) var2="Bedroom1";;
esac