[20170705] résultat de l'exécution de la comparaison diff content.txt
--//Parfois, il est nécessaire de comparer les résultats de sortie de deux commandes. La méthode stupide est la suivante, exemple :
$ lsnrctl statut LISTENER_SCAN2 > /tmp/b2.txt
$ lsnrctl statut LISTENER_SCAN3 > /tmp/b3.txt
$ diff -Nur /tmp/b2.txt /tmp/b3.txt
--//Évidemment, cela nécessite de générer 2 fichiers puis de les comparer. En fait, cela peut être facilement réalisé en utilisant le shell.
$ lsnrctl status LISTENER_SCAN3 | 🎜 >--//Cela réduit la génération d'un fichier. Peut-il réduire davantage la génération de fichiers ?
$ diff <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
-- //Comment comprendre ?
$ echo <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
/dev/fd/63 /dev/fd/62
--// en fait, 62 , 63 est le handle de fichier ouvert. Bien sûr, il sera fermé immédiatement après l'exécution
$ ls -l /dev/fd
lrwxrwxrwx 1 root root 13 2014-12-11 02 : 24:57 /dev/fd -> /proc/self/fd
$ ls -l /dev/fd/
total 0
lrwx------ 1 grille oinstall 64 2017-07-05 16 : 16:07 0 -> /dev/pts/4
lrwx------ 1 grille oinstall 64 2017-07-05 16:16:07 1 -> /pts/4
lrwx------ 1 grille oinstall 64 2017-07-05 16:16:07 2 -> /dev/pts/4
lr-x------ 1 grille oinstall 64 2017-07 -05 16:16:07 3 -> /proc/101318/fd
--//L'écriture d'un script shell simple est facile à comprendre (notez que cette méthode d'écriture est pas très rigoureux) :
--//J'ai lu directement le contenu du handle 63,62.
$ cat a.sh
# /bin/bash
echo <( lsnrctl status LISTENER_SCAN2) <( lsnrctl status LISTENER_SCAN3)
diff /dev/fd/63 /dev/fd/62
$ .sh
/dev/fd/63 /dev/. fd/62
6c6
< Connexion à (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))
---
> =(PROTOCOL=IPC)( KEY=LISTENER_SCAN3)))
9c9
< Alias LISTENER_SCAN2
---
> ; Date de début 30-JUN-2017 12:00:03
< Temps de disponibilité 5 jours 4 h 18 min
---
> :58
> Temps de disponibilité 5 jours 4 heures 17 minutes 43 secondes
17c17
< >---
> ; Fichier journal de l'auditeur /u01/app/11.2.0.4/grid/network/log/listener_scan3.log
19,20c19,20
< PROTOCOL=ipc)(KEY=LISTENER_SCAN2 )))
< (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.109)(PORT=1521)))
---
> (DESCRIPTION=(ADRESSE= (PROTOCOL=ipc)(KEY=LISTENER_SCAN3)))
>
-- //En y réfléchissant, je comprends enfin exp/imp à la volée Exemple :
$ exp scott/book file=>(gzip >t.dmp.gz. ) tables=emp
$ imp scott/book full=y file=<(gunzip
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!