-2

我对linux很陌生,对编程语言不太了解。我正在寻找一种将变量(var2)设置为给定值的方法,具体取决于匹配 var1 中 MAC 地址的最后 3 个字节

这是一个例子:

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

这是我基于mac地址最后3个值的“查找表”

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

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

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

4

2 回答 2

2

看起来你只需要一个case声明。

case $var1 in
 *:DD:EE:FF) var2="Home";;
 *:AB:CD:EF) var2="Garage";;
 *:FE:DC:GH) var2="Bedroom1";;
esac
于 2021-03-07T17:04:29.863 回答
0

我会简化表格(table.txt如下所示):

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

然后这个工作:

SUFF=$(echo $1 | 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

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

于 2021-03-07T17:00:54.193 回答