微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash 脚本在参数中查找字符串以设置变量

如何解决Bash 脚本在参数中查找字符串以设置变量

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

这是一个例子:

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 语句。 :-)

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

解决方法

看起来您只需要一个 case 语句。

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

我会简化表格(以下称为 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

我认为您可以从这里为您的脚本调整它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。