stdout (터미널로 전송 됨)을 캡처하고 터미널에 출력 된 후 (사용자 용) 일부 처리를 수행하고 싶습니다.
출력을 가져오고 그에 따라 처리하고 변경하는 방법을 알고 싶습니다.
(가능하다면) 터미널에 입력하는 모든 명령에 대해 이런 일이 발생하기를 원합니다.
편집 : 임시 채팅 포럼에서 대화 한 후
우리는해야한다
특정 명령이나 출력이 감지되면 무언가를하십시오.
글쎄, 터미널에 입력하는 모든 명령 의 출력을 가져 와서 처리하고 출력하는 것은 좋은 생각 이 아닐 수도 있습니다 .
그러나 다음을 통해 특정 명령에 대해 할 수 있습니다. tee
your-command | tee saved-output | processing-tool
processing-tool의 결과를 보았을 때, saved-output
예를 들어 cat
(짧은 출력 인 경우) 또는 less
(긴 출력 인 경우)를 볼 수 있습니다.
예:
$ LANG=C sudo lshw | tee saved-output | grep -i -A2 disk
*-disk
description: ATA Disk
product: KINGSTON SKC300S
physical id: 0.0.0
--
*-disk
description: ATA Disk
product: WDC WD4002FYYZ-0
vendor: Western Digital
$ less saved-output
임시 채팅 포럼에서 대화 한 후 다음을 제안합니다.
vialog
하거나 viafifo
다음 링크에 따라특정 명령이나 출력이 감지되면 무언가를하십시오.
vialog
다음 예제와 같이 사용하도록 직접 작동합니다 .
vialog 2>&1 | tee saved-output | grep 'docker container ls' && echo 'it was mentioned'
실제의 경우,보다 더 발전된 것을 시작하고 싶다고 생각 echo 'it was mentioned'
하지만 이것은 데모 예제 일뿐입니다. 특정 검사를 구축 vialog
하고 경고를 비활성화하면 상황이 더 효율적일 수 있습니다 . 이는 귀하의 경우에는 필요하지 않을 것입니다.
대화 중 스크린 샷 :
대화 후 스크린 샷 :
이렇게하면 호출 된 명령이 없는지 쉽게 확인할 수 있습니다.
$ LANGUAGE=C vialog 2>&1 | tee saved-output | grep -i 'Command.*not found' && echo 'it was mentioned'
Command 'docker' not found, but can be installed with:
it was mentioned
$ cat saved-output
----- start vialog at 2019-01-12 18:57:33 ----------------------------
$ docker container ls
Command 'docker' not found, but can be installed with:
sudo apt install docker.io
$ exit
exit
------- end vialog at 2019-01-12 18:58:01 --- used 28 seconds
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다