すべてのルート詳細を提供するルーティングテーブルからルートを削除する方法を知っています(ip r d ...
)。
ある種のインデックスを使用してルーティングテーブルを一覧表示し、インデックスに基づいてその場所から削除する方法はありますか?
答え1
これは、組み込みselect
コマンドを使用してメニューを表示する単純なbashスクリプトです。
#!/bin/bash
mapfile -t routes <<<"$(ip route)"
select var in "${routes[@]}"
do [ -n "$var" ] && sudo ip route del $var
done
現在のパスを配列として読み込み、メニュー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