Theo de Raadt writes: > > > + for _hn in /etc/hostname.??:??:??:??:??:??; do > > > + _mac=`echo $_hn | cut -c 15-31`
_mac=${_hn#/etc/hostname.} > > > + _if=`ifconfig | grep -B 1 $_mac | head -n 1 | awk -F ": " > > > '{print $1}'` mac2dev() { # This got long ifconfig | while IFS= read _line; do if [[ "$_line" = [a-z]!(\ *):* ]]; then _dev=${_line%%:*} elif [[ "$_line" = *lladdr*$1* && $_dev != vlan* ]]; then echo $_dev fi done } _if=$(mac2dev "$_mac") # or just _if=$(mac2dev ${_hn#*.}) IFS needs to be cleared for read otherwise initial whitespace is stripped from _line. Note that the vlan devices need to be excluded. Are there other circumstances which could confuse this in ifconfig's output? It could probably return immediately after printing. Matthew