Linux“watch”命令显示 nft 列表规则集的最后 30 行

Linux“watch”命令显示 nft 列表规则集的最后 30 行

我想在 Debian Bash 中不断地看到最后 30 行代码“nfc 列表规则集”。像这样的东西:

watch -n 1 nft list ruleset | tail -n 30

但上面的代码不显示“nfc”命令输出的最后 30 行,它显示空白屏幕。

答案1

我在输入问题时找到了解决方案

watch "bash -c 'sudo nft list ruleset | tail -n 30'"

答案2

只是:

watch -n 1 'nft list ruleset | tail -n 30'

如今,大多数watch实现都会调用 shell 将其参数的串联解释为 shell 代码,就像使用eval.有些可以-x选择跳过中间人并直接运行命令,这样

所以:

watch foo bar

实际上等同于:

watch -x sh -c 'foo bar'

和你的:

watch "bash -c 'sudo nft list ruleset | tail -n 30'"

就好像:

watch -x sh -c "bash -c 'sudo nft list ruleset | tail -n 30'"

通过该bash调用完全没有必要,因为sh可以像 bash 一样进行管道传输,并且通常更有效。

你可能想要做到:

sudo watch 'nft list ruleset | tail -n 30'

而不是:

watch 'sudo nft list ruleset | tail -n 30'

即使watch不需要tail超级用户权限来避免sudo每次迭代的开销(并填充审核日志)。

相关内容