Shell - Utilisation de variable avec awk
Résolu/Fermé
gamerounet
-
29 sept. 2011 à 09:48
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 30 sept. 2011 à 12:04
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 30 sept. 2011 à 12:04
A voir également:
- Shell awk -f
- Chkdsk /f - Guide
- Classic shell windows 10 français - Télécharger - Personnalisation
- F lux - Télécharger - Divers Utilitaires
- Sfc /scannow /f /r - Guide
- Awk gsub ✓ - Forum Shell
2 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
Modifié par mamiemando le 29/09/2011 à 09:57
Modifié par mamiemando le 29/09/2011 à 09:57
C'est normal, avec l'opérateur '...' le shell n'évalue pas les valeurs de variables (typiquement $VAR). Il faut les échapper. On sent bien en plus qu'il y a quelque chose à faire car $0, $1... n'ont pas la même signification en shelle et en awk.
Bref, il faut utiliser l'opérateur "..." et échapper (avec \) les opérateurs awk pour qu'ils ne soient pas interprétés en tant qu'opérateurs shell.
Voici par exemple un script shell qui liste les processus de root et qui apparaissent dans ps -Af :
Pour éviter ce genre d'erreur, tu peux utiliser un éditeur texte qui propose de la coloration syntaxique (par exemple vim) et qui t'aidera à comprendre comment ta commande shell est évaluée.
Bonne chance
Bref, il faut utiliser l'opérateur "..." et échapper (avec \) les opérateurs awk pour qu'ils ne soient pas interprétés en tant qu'opérateurs shell.
Voici par exemple un script shell qui liste les processus de root et qui apparaissent dans ps -Af :
#!/bin/sh VAR="root" ps -Af | awk "{if ( \$1 == \"$VAR\" ) print \$0}"
Pour éviter ce genre d'erreur, tu peux utiliser un éditeur texte qui propose de la coloration syntaxique (par exemple vim) et qui t'aidera à comprendre comment ta commande shell est évaluée.
Bonne chance
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
Modifié par dubcek le 30/09/2011 à 12:05
Modifié par dubcek le 30/09/2011 à 12:05
hello
on peut aussi faire
on peut aussi faire
ps -Af | awk -v var=$VAR '/java/ && $3==var {print $0}'
29 sept. 2011 à 10:08
Merci, ça marche !
29 sept. 2011 à 19:00