1

在这里,我创建了一个 bash 脚本来获取系统 mac 地址(05:1d:48:2f:60:h6)并分配给变量 $phyAddr。我想将 mac 地址中的 ':' 替换为 '_' 并分配给另一个变量 $phyAddrConvert。这里只获取mac地址。请帮助我更正将“col”替换为“下划线符号”。

phyAddr=`ifconfig | grep 'eth0' | tr -s ' ' | cut -d ' ' -f5` 
phyAddrConvert=$phyAddr | sed "s/:/_/g";
echo $phyAddr                  # get output as 05:1d:48:2f:60:h6
echo $phyAddrConvert           # nothing will get
4

3 回答 3

6

你可以试试,

 # cat phyAddr.sh
 phyAddr=`ifconfig | grep eth0 | awk '{print $5}' | sed 's/:/_/g'`
 echo $phyAddr

你的mac地址应该像这样显示,

 # ./phyAddr.sh
 1A_2B_3C_4D_5E_6F
于 2013-11-03T17:53:24.290 回答
3
phyAddrConvert=${phyAddr//:/_}
于 2013-11-03T11:01:19.670 回答
2

替换此行:

phyAddrConvert=$phyAddr | sed "s/:/_/g";

有了这个:

phyAddrConvert=$(echo $phyAddr | sed "s/:/_/g")

应该给你你正在寻找的结果。

于 2013-11-03T07:40:19.383 回答