J'ai comme l'utilisation de /sbin/ip pour ce genre de tâches, car il est beaucoup plus facile à analyser:
$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:30:21:48 brd ff:ff:ff:ff:ff:ff
Vous pouvez trivialement obtenir l'adresse mac de cette sortie avec awk:
$ ip link show eth0 | awk '/ether/ {print $2}'
00:0c:29:30:21:48
Si vous voulez mettre un peu plus d'effort, et d'analyser plus de données, je vous recommandons d'utiliser l'-en ligne argument de la propriété intellectuelle de commande, ce qui vous permettra de traiter chaque ligne comme un nouvel appareil:
$ ip -o link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue \ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000\ link/ether 00:0c:29:30:21:48 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000\ link/ether 00:0c:29:30:21:52 brd ff:ff:ff:ff:ff:ff
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100\ link/[65534]
5: sit0: <NOARP> mtu 1480 qdisc noop \ link/sit 0.0.0.0 brd 0.0.0.0