#1 Le 24/12/2017, à 13:51
- JEREM12
[Résolu] Échapper une back-quote
Bonjour,
J'utilise dans un script la commande getpcaps (/sbin/getpcaps) qui avec un PID en argument permet de récupérer les capabilities d'un programme : getpcaps 1234. Je l'utilise sur une liste de PID dans une boucle, et je veux filtrer ces résultats avec la commande grep.
En exemple, voici un résultat de la commande :
$ /sbin/getpcaps 1
Capabilities for `1': = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,[...]
Mon problème se situe autour du numéro du PID qui est affiché par la commande, il y a à droite une simple-quote et à gauche une back-quote. Et c'est précisément cette back-quote, qui est utilisée dans les scripts bash pour délimiter une commande à exécuter qui empêche le grep de correctement fonctionner. Par exemple, la ligne qui suit dans le script ne fonctionne pas, le grep ne grep pas :
/sbin/getpcaps $pid | grep "cap_"
Savez-vous comment échapper cette back-quote ou un moyen de contourner ça ?
Merci d'avance et bonnes fêtes !
Dernière modification par JEREM12 (Le 26/12/2017, à 19:24)
Hors ligne
#2 Le 24/12/2017, à 15:01
- Hizoka
Re : [Résolu] Échapper une back-quote
Salut,
le back-quote ne bloque rien du tout car il ne récupère que du texte au final.
le retour de getcaps est sur la sortie erreur, fais ça pour le traiter :
/sbin/getpcaps 1 2>&1 | grep "cap_"
Mais en même temps je ne pige pas l’intérêt du grep...
car avec le pid tu as exactement ce que tu veux....
si tu veux que la partie de droite :
/sbin/getpcaps 1 2>&1 | sed "s/.*= \(.*\)/\1/"
ou
retour=$(/sbin/getpcaps 1 2>&1); echo "${retour/#* = }"
Bonnes fêtes à tous
Dernière modification par Hizoka (Le 24/12/2017, à 15:01)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 26/12/2017, à 19:24
- JEREM12
Re : [Résolu] Échapper une back-quote
Bonjour,
J'en ai supposé que ça venait du back-quote car je ne voyais pas quelle autre raison ça pouvait être, une simple supposition donc ;-)
Merci pour ta réponse, étrange comme idée de redirigé vers l'erreur, ce n'est pas précisé dans le man, comment le savais-tu ?
Mon grep sert à n'afficher que les processus qui possèdent des capabilities dans ma boucle, car ce n'est pas le cas de tous. Et aussi pour ne récupérer que les PID pour une capabilitie donnée, voilà tout !
Bonnes fêtes !
Hors ligne
#4 Le 26/12/2017, à 19:28
- Hizoka
Re : [Résolu] Échapper une back-quote
Merci pour ta réponse, étrange comme idée de redirigé vers l'erreur, ce n'est pas précisé dans le man, comment le savais-tu ?
J'ai testé
si la commande suivante affiche du texte, c'est que c'est pas dans strout :
x=$(/sbin/getpcaps 1)
de même grep ne colorait pas ses retours.
Bonnes fêtes.
Dernière modification par Hizoka (Le 26/12/2017, à 19:32)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne