Exécution de commande avec back quotes et variables...
Résolu/Fermé
A voir également:
- Quote terminal mac
- Commande terminal mac - Guide
- Adresse mac - Guide
- Nettoyer son mac - Guide
- @ Sur mac - Guide
- Temperature mac - Guide
3 réponses
grep -c '"$svc_prov"' forti_svc.txt
- faute de frappe: c'est bien cela que je souhaite : double quotes entourées des simples quotes
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
Modifié par chris79 le 11/06/2015 à 15:53
Modifié par chris79 le 11/06/2015 à 15:53
Salut,
Tu peux soit effectivement utiliser les quotes ` ` pour récupérer un résultat :
Ou utiliser, et c'est plus simple, la forme suivante avec parenthèses :
Tu peux soit effectivement utiliser les quotes ` ` pour récupérer un résultat :
res=`<maCommande>`
Ou utiliser, et c'est plus simple, la forme suivante avec parenthèses :
res=$(<maCommande>)
Merci!
J'ignorai que l'on pouvait ne pas mettre de back quotes dans la 2e solution.
Par contre j'ai donc cela dans mon script du coup :
statu_svc=$(grep -c '\"$svc_prov\"' forti_svc.txt)
mais lors de l'éxécution le contenu de ma variable n'est pas pris en compte à cause des simples quotes entourant le reste (je crois)...et là je coince encore! :(
J'ignorai que l'on pouvait ne pas mettre de back quotes dans la 2e solution.
Par contre j'ai donc cela dans mon script du coup :
statu_svc=$(grep -c '\"$svc_prov\"' forti_svc.txt)
mais lors de l'éxécution le contenu de ma variable n'est pas pris en compte à cause des simples quotes entourant le reste (je crois)...et là je coince encore! :(
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
11 juin 2015 à 16:29
11 juin 2015 à 16:29
Peux-tu donner un extrait de ton fichier forti_svc.txt ainsi que le contenu exact de $svc_prov ?
Ce sera plus simple ;)
Ce sera plus simple ;)
PAs de soucis :)
$svc_prov est situé dans une boucle et récupère un à un des noms de ports réseau sans guillemets de type http https ou bien encore smi-s-5989.
forti_svc.txt contient une configuration de firewall dans laquelle je souhaite voir s'il trouve les services récupéré précédemment.
extrait de forti_svc.txt:
edit "smi-s-5989"
edit "smi-s-5988"
...
Je souhaite que smi-s-598 renvoi 0 --> pas de correspondance
mais que smi-s-5989 renvoi 1 et smi-s-5988 aussi.
$svc_prov est situé dans une boucle et récupère un à un des noms de ports réseau sans guillemets de type http https ou bien encore smi-s-5989.
forti_svc.txt contient une configuration de firewall dans laquelle je souhaite voir s'il trouve les services récupéré précédemment.
extrait de forti_svc.txt:
edit "smi-s-5989"
edit "smi-s-5988"
...
Je souhaite que smi-s-598 renvoi 0 --> pas de correspondance
mais que smi-s-5989 renvoi 1 et smi-s-5988 aussi.
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
11 juin 2015 à 16:31
11 juin 2015 à 16:31
hello
qu'est ce qui est recherché ?
exactement "$svc_prov" ou le contenu de la variable svc_prov
qu'est ce qui est recherché ?
exactement "$svc_prov" ou le contenu de la variable svc_prov
C'est le contenu de la variable qui m'intéresse, mais dans le terme exact :
extrait de forti_svc.txt:
edit "smi-s-5989"
edit "smi-s-5988"
...
Je souhaite que smi-s-598 renvoi 0 --> pas de correspondance
mais que smi-s-5989 renvoi 1 et smi-s-5988 aussi.
du coup j'ai tenté de mettre des quotes un peu dans tous les sens...mais il y a peu etre plus simple ? :)
extrait de forti_svc.txt:
edit "smi-s-5989"
edit "smi-s-5988"
...
Je souhaite que smi-s-598 renvoi 0 --> pas de correspondance
mais que smi-s-5989 renvoi 1 et smi-s-5988 aussi.
du coup j'ai tenté de mettre des quotes un peu dans tous les sens...mais il y a peu etre plus simple ? :)
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
11 juin 2015 à 16:59
11 juin 2015 à 16:59
sans ou avec les "
statu_svc=$(grep -c "$svc_prov" forti_svc.txt)
statu_svc=$(grep -c "\"$svc_prov\"" forti_svc.txt)
Nickel ! La 2e solution est la bonne ! Merci!
commande:
statu_svc=$(grep -c "\"$svc_prov\"" forti_svc.txt)
affichage du debug :
grep -c '"tcp_902-903"' forti_svc.txt
statu_svc=1
alors que dans mon fichier j'en ai bien 2 qui auraient pu correspondre sans les bonnes quotes:
grep "tcp_902-903" forti_svc.txt
edit "tcp_902-903"
edit "tcp_902-9033"
Merci messieurs pour votre aide, je vais enfin le finir ce foutu script ;)
(passer d'une marque de firewall à une autre quand aucune aide n'est fournie...)
commande:
statu_svc=$(grep -c "\"$svc_prov\"" forti_svc.txt)
affichage du debug :
grep -c '"tcp_902-903"' forti_svc.txt
statu_svc=1
alors que dans mon fichier j'en ai bien 2 qui auraient pu correspondre sans les bonnes quotes:
grep "tcp_902-903" forti_svc.txt
edit "tcp_902-903"
edit "tcp_902-9033"
Merci messieurs pour votre aide, je vais enfin le finir ce foutu script ;)
(passer d'une marque de firewall à une autre quand aucune aide n'est fournie...)
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
Modifié par chris79 le 11/06/2015 à 17:16
Modifié par chris79 le 11/06/2015 à 17:16
dubcek a été plus rapide ;)
Je rajouterai que si tu utilises de simple quotes, ta variable n'est plus interprétée ;)
Ex avec echo :
Je rajouterai que si tu utilises de simple quotes, ta variable n'est plus interprétée ;)
Ex avec echo :
toto="bonjour" echo "$toto" # affiche "bonjour" echo '$toto' # affiche "$toto"