Если то, что вы хотите, это IP-адрес, назначенный на интерфейс по умолчанию (который я понял из комментариев под вопросом), используя швейцарский армейский нож сетевого настройки ( IP.
) должно быть достаточно:
$ ip route | grep '^default'
default via 10.176.143.1 dev eth1 metric 203
$ ip addr show eth1
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c0:de:f1:72:30:48 brd ff:ff:ff:ff:ff:ff
inet 10.176.143.71/24 brd 10.176.143.255 scope global eth1
valid_lft forever preferred_lft forever
Это сокращает до
$ ip addr show \
$( /sbin/ip route \
| grep '^default'\
| sed 's/^.*dev \([^ \t]*\) .*$/\1/' )
, что является уродливым, потому что он разбирает что-то, что, вероятно, на самом деле не предназначено для анализа (вывод IP-маршрута
), но должно сработать.