Linux "watch"コマンドは、nftリストルールセットの最後の30行を表示します。

Linux "watch"コマンドは、nftリストルールセットの最後の30行を表示します。

私はDebian Bashで "nfc list ruleset"コードの最後の30行を見続けたいと思います。このような:

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実装では、を使用するようにシェルを呼び出し、その引数の接続をシェルコードとして解釈します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のようにパイプすることができ、通常より効率的であるため、bash完全に不要です。sh

次のことができます。

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

代わりに:

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

各反復のオーバーヘッド(および監査ログの入力)を防ぐためにスーパーユーザー権限もwatch必要ありません。tailsudo

関連情報