나는 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
필요하지 않습니다 .tail
sudo