mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-16 06:25:35 +08:00
61 lines
1.2 KiB
Bash
61 lines
1.2 KiB
Bash
#!/bin/sh
|
|
#$Id$
|
|
|
|
#
|
|
# Script created by: Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18
|
|
# Donated to the public domain.
|
|
#
|
|
# This script transforms the output of "ip" into more readable text.
|
|
# "ip" is the Linux-advanced-routing configuration tool part of the
|
|
# iproute package.
|
|
#
|
|
|
|
test "X-h" = "X$1" && echo "Usage: $0 [tablenr [raw ip args...]]" && exit 64
|
|
|
|
test -z "$*" && set 0
|
|
|
|
ip route list table "$@" |
|
|
while read network rest
|
|
do set xx $rest
|
|
shift
|
|
proto=""
|
|
via=""
|
|
dev=""
|
|
scope=""
|
|
src=""
|
|
table=""
|
|
case $network in
|
|
broadcast|local|unreachable) via=$network
|
|
network=$1
|
|
shift
|
|
;;
|
|
esac
|
|
while test $# != 0
|
|
do
|
|
key=$1
|
|
val=$2
|
|
eval "$key=$val"
|
|
shift 2
|
|
done
|
|
echo "$network $via $src $proto $scope $dev $table"
|
|
done | awk -F ' ' '
|
|
BEGIN {
|
|
format="%15s%-3s %15s %15s %8s %8s%7s %s\n";
|
|
printf(format,"target","","gateway","source","proto","scope","dev","tbl");
|
|
}
|
|
{ network=$1;
|
|
mask="";
|
|
if(match(network,"/"))
|
|
{ mask=" "substr(network,RSTART+1);
|
|
network=substr(network,0,RSTART);
|
|
}
|
|
via=$2;
|
|
src=$3;
|
|
proto=$4;
|
|
scope=$5;
|
|
dev=$6;
|
|
table=$7;
|
|
printf(format,network,mask,via,src,proto,scope,dev,table);
|
|
}
|
|
'
|