[SSFR] Execution de variables dans bash

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Bonjour,

Voici mon problème :

J'ai besoin de récupérer la valeur retournée par cette commande dans une variable :

/opt/rt3/bin/rt ls -i 'Subject="localhost: CUPS"' | tail -1 | cut -d/ -f2

Vous noterez les simple et double quotes qu'il faut exactement comme ça pour que la commande fonctionne.

Alors, la où ça se complique, c'est que le contenu de subject est une variable, ainsi que le path de la commande rt (moins grave ceci).

Donc la commande à exécuter est en fait :

$RTPATH/bin/rt ls -i 'Subject=\"$TICKET_SUBJECT\"' | tail -1 | cut -d/ -f2

Et je veux le résultat dans une variable TICKET_ID soit quelque chose comme :

TICKET_ID=`$RTPATH/bin/rt ls -i 'Subject=\"$TICKET_SUBJECT\"' | tail -1 | cut -d/ -f`

Voici quelques exemples de comportement de la chose dans un bash :

# Affichage de la commande que je veux exécuter
[root@chcs001 ~]# TICKET_ID="$RTPATH/bin/rt ls -i 'Subject=\"$TICKET_SUBJECT\"' | tail -1 | cut -d/ -f2" ; echo $TICKET_ID
/opt/rt3/bin/rt ls -i 'Subject="localhost: CUPS"' | tail -1 | cut -d/ -f2

# En l'exécutant, cette commande fonctionne bien
[root@chcs001 ~]# /opt/rt3/bin/rt ls -i 'Subject="localhost: CUPS"' | tail -1 | cut -d/ -f2
765

# Quand je l'exécute via une variable, ça ne fonctionne plus
[root@chcs001 ~]# TICKET_ID2=`$TICKET_ID`; echo $TICKET_ID2
rt: list: Unrecognised argument 'CUPS"''.
rt: For help, run 'rt help list'.
rt: For help, run 'rt help ticket'.


J'ai l'impression que le fait d'exécuter avec `` me fait n'importe quoi dans les quotes de ma commande.

Si quelqu'un a une idée, je la prends avec plaisir :)
--
L.B.

Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/