[Linux shell] execution de commande ?

execution de commande ? [Linux shell] - Shell/Batch - Programmation

Marsh Posté le 31-05-2006 à 14:38:16    

Salut,
 
Je recherche un moyen d'executer cette commande qui est contenu dans une variable.
Exemple:

Code :
  1. commande="pg_dump -U postgres -d -i -c -O facildb > test.sql"


 
Pour information je n'utilise pas l'option -f de pg_dump car le nom "test.sql" est generer automatiquement.
 
bref
 

Code :
  1. commande="pg_dump -U postgres -d -i -c -O facildb > test.sql"
  2. $commande


 
me genere une erreur:

Code :
  1. pg_dump: trop d'arguments en ligne de commande (le premier étant «>»


 

Reply

Marsh Posté le 31-05-2006 à 14:38:16   

Reply

Marsh Posté le 02-06-2006 à 15:43:38    

celestin1409 a écrit :

Salut,
 
Je recherche un moyen d'executer cette commande qui est contenu dans une variable.
Exemple:

Code :
  1. commande="pg_dump -U postgres -d -i -c -O facildb > test.sql"


 
Pour information je n'utilise pas l'option -f de pg_dump car le nom "test.sql" est generer automatiquement.
 
bref
 

Code :
  1. commande="pg_dump -U postgres -d -i -c -O facildb > test.sql"
  2. $commande


 
me genere une erreur:

Code :
  1. pg_dump: trop d'arguments en ligne de commande (le premier étant «>»



 
 
 
pour executer une commande, à la limite tu n'as pas besoin de la placer dans une variable. Maintenant, si c'est absoluement nécessaire pour ton script, tu te trompe de cote. il faut utiliser: `   (je me souviens pas de son nom, ALTGR - 7)

Code :
  1. commande=`pg_dump -U postgres -d -i -c -O facildb > test.sql`
  2. $commande

Reply

Marsh Posté le 12-06-2006 à 09:33:23    

youx21 a écrit :

pour executer une commande, à la limite tu n'as pas besoin de la placer dans une variable. Maintenant, si c'est absoluement nécessaire pour ton script, tu te trompe de cote. il faut utiliser: `   (je me souviens pas de son nom, ALTGR - 7)

Code :
  1. commande=`pg_dump -U postgres -d -i -c -O facildb > test.sql`
  2. $commande



 
Salut youx21 ben en fait ta proposition est interessante mais je viens reellement de localiser le probleme. En fait quand je recois la commande a executer je la recois de cette facon:

Code :
  1. commande='pg_dump -U postgres -d -i -c -O facildb > test.sql'


en fait avec des simples : ' (simple guillemet)
et le probleme c'est que les simples guillemets ne permet plus l'interpretation des pipes ou redirections comme dans mon cas.
donc je recherche le moyen de les interpreter de nouveau.
Voila si tu as une idee.

Reply

Marsh Posté le 12-06-2006 à 09:35:16    

eval $commande

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed