J’ai du mal à supprimer la sortie de la commande netstat lorsque je vérifie si un port actuel est utilisé. Je n’ai pas besoin de la sortie de la commande mais plutôt du code d’erreur.
netstat -anp | grep 1521 &>/dev/null
cours d’exécution netstat -anp | grep 1521 &>/dev/null
netstat -anp | grep 1521 &>/dev/null
résultats dans
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
étant affiché comme la sortie. J’ai aussi essayé:
2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'
qui ne fait que créer un tas de lignes vides après la sortie Pas tous les processus … mais les affiche toujours dans la sortie.
fini par résoudre mon propre problème. Utilisez le suivant
netstat -taepn 2>/dev/null | grep -Po "\b(\d|\.)+:1521\b" 1>/dev/null
Ceci est spécifique à ma situation lorsque je veux juste le code d’erreur et pas de sortie
La réponse acceptée ne fonctionne pas pour moi, CentOS6.5 32bit ici. Il ne produit rien, quel que soit l’état du port.
J’ai trouvé ma solution:
netstat -antp 2>/dev/null | grep [port-num]
Cela omettra les deux premières lignes de netstat
si elle est exécutée par un utilisateur régulier.
Les deux lignes d’avertissement devaient être omises:
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
et travaille dans deux situations: