Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/12/2017, à 14: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, à 20:24)

Hors ligne

#2 Le 24/12/2017, à 16: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 smile

Dernière modification par Hizoka (Le 24/12/2017, à 16:01)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 26/12/2017, à 20: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, à 20: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é tongue
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, à 20:32)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne