如何解决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 举报,一经查实,本站将立刻删除。