Linux
按位置從路由表中刪除路由
我知道如何從提供所有路由詳細資訊的路由表中刪除路由 (
ip r d ...
)。有沒有辦法列出帶有某種索引的路由表,然後通過索引從其位置刪除?
這是一個簡單的 bash 腳本,它利用內置
select
命令來顯示菜單。#!/bin/bash mapfile -t routes <<<"$(ip route)" select var in "${routes[@]}" do [ -n "$var" ] && sudo ip route del $var done
它將目前路線讀入 array
routes
,然後select
在菜單中顯示它們,例如:1) default via 192.168.0.254 dev p4p1 2) 169.254.0.0/16 dev p4p1 scope link metric 1002 3) 169.254.0.0/16 dev p4p2 scope link metric 1003 #?
在提示符下
#?
鍵入要刪除的行,例如1
並返回。這將設置為顯示在命令前面的var
字元串。鍵入要結束的文件結尾。1)``sudo ip route del``control-d