[20170705]diff는 실행 결과의 내용을 비교합니다.txt
--//때때로 두 명령의 출력 결과를 비교해야 하는 경우가 있습니다. 어리석은 방법은 다음과 같습니다.
$ lsnrctl status LISTENER_SCAN2 > tmp/ b2.txt
$ lsnrctl status LISTENER_SCAN3 > /tmp/b3.txt
$ diff -Nur /tmp/b2.txt /tmp/b3.txt
--//분명히 2개의 파일이 생성되고 비교됩니다. 실제로 쉘을 이용하면 쉽게 구현할 수 있습니다.
$ lsnrctl status LISTENER_SCAN3 | diff /tmp/2.txt -
--//이렇게 하면 파일 생성을 더 줄일 수 있을까요? ?
$ diff <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
--//이해하는 방법?
$ echo <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
/dev/ fd/63 /dev /fd/62
--//실제로 62,63은 열린 파일 핸들입니다. 물론 실행 후 즉시 닫힙니다.
$ ls -l /dev/fd
lrwxrwxrwx 1 루트 루트 13 2014-12-11 02:24 :57 /dev/fd -> /proc/self/fd
$ ls -l /dev/fd/
total 0
lrwx------ 1 그리드 oinstall 64 2017-07-05 16:16: 07 0 -> /dev/pts/4
lrwx------ 1 그리드 oinstall 64 2017-07-05 16:16:07 1 -> /pts/4
lrwx----- - 그리드 oinstall 1개 64 2017-07-05 16:16:07 2 -> /dev/pts/4
lr-x------ 그리드 oinstall 1개 64 2017-07-05 16:16:07 3 -> /proc/101318/fd
--//간단한 쉘 스크립트를 작성하는 것은 이해하기 쉽습니다(이 작성 방법은 그다지 엄격하지 않습니다):
-- //핸들 63,62 내용을 직접 읽었습니다.
$ cat a.sh
#! /bin/bash
echo <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
diff /dev/fd/63 /dev/fd/62
$ .a.sh
/dev/fd/63 /dev/fd/62
6c6
< (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2))에 연결 중 )
---
> 연결 중 (설명 = (주소 = (propocol = ipc) (키 = Listener_scan3))
9c9
& lt; alias listner_scan2
---
& gt; & lt; 시작 날짜 30- 2017년 6월 12:00:03🎉 5일 4시간 17분 43초
17c17
< 리스너 로그 파일 /u01/app/11.2.0.4/grid/network/log/listener_scan2.log
---
> 리스너 로그 파일 /u01/app/11.2.0.4/grid/network /log/listener_scan3.log
19,20c19,20
< (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN2)))
< (설명=(주소=(프로토콜=tcp)(호스트= 192.168.100.109)(포트=1521)))
---
> )))
> (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=192.168.100.107)(PORT=1521)))
--//생각해보니 드디어 exp/imp가 즉석에서 이해가 되었습니다. 예:
$ exp scott/book file=>(gzip > t.dmp.gz) tables=emp
$ imp scott/book full=y file=<(gunzip
위 내용은 [20170705] diff 비교 실행 결과 내용.txt의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!