iptables 列出行号脚本 iptables-save -bash:number-rules:未找到命令

iptables 列出行号脚本 iptables-save -bash:number-rules:未找到命令

我正在尝试使用脚本来显示iptables-save命令中的 iptables 行号。

该脚本取自以下网站:https://blog.oddbit.com/post/2018-02-08-listing-iptables-rules-with-li/

其名称如下number-rules

#!/bin/awk -f

state == 0 && /^-A/ {state=1; chain=$2; counter=1; printf "\n"}
state == 1 && $2 != chain {chain=$2; counter=1; printf "\n"}
!/^-A/ {state=0}
state == 1 {printf "[%03d] %s\n", counter++, $0}
state == 0 {print}

当我执行时,它会引发以下错误:

root@ergesttstsrv:~# iptables -S | number-rules
-bash: number-rules: command not found

我检查过awk

root@ergesttstsrv:~# which awk
/usr/bin/awk

并将脚本的第一行从 更改#!/bin/awk -f/usr/bin/awk -f,但仍然出现同样的错误。

有没有更好的方法可以做到这一点,iptables -nv -L --line-numbers或者脚本中的错误是什么?请注意,我对 bash 还很陌生。

答案1

您需要确保number-rules是可执行文件,然后需要使用./它从当前工作目录执行它,因为它不在您的路径中 - 所以iptables -S | ./number-rules

相关内容