[Shell Script] Expression rationnelle

Expression rationnelle [Shell Script] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 02-06-2005 à 17:59:07    

Bonjour,
 
Voici la variable shell (bash) que j'aimerais obtenir :
  CHOSE="/home/bidule/a.tex /home/bidule/b.tex /home/bidule/c.tex"
 
Pour un script plus propre, j'aimerais écrire ceci :
 
Idée n°1 :
  CHOSE="/home/bidule/{a,b,c}.tex"  
  Problème : les accolades ne sont pas interprétées entre les guillemets.  
 
Idée n°2 :
  CHOSE=/home/bidule/{a,b,c}.tex  
  Problème : les accolades sont interprétées, on obtient donc la commande suivante :  
  CHOSE=/home/bidule/a.tex /home/bidule/b.tex /home/bidule/c.tex  
  ce qui équivaut à :  
  CHOSE=/home/bidule/a.tex  
 
Comment faire ?


Message édité par e-miel le 03-06-2005 à 07:54:44
Reply

Marsh Posté le 02-06-2005 à 17:59:07   

Reply

Marsh Posté le 02-06-2005 à 18:11:04    

e-miel a écrit :


Idée n°2 :
  CHOSE=/home/bidule/{a,b,c}.tex  
  Problème : les accolades sont interprétées, on obtient donc la commande suivante :  
  CHOSE=/home/bidule/a.tex /home/bidule/b.tex /home/bidule/c.tex  

[:pingouino]

% bash
$ CHOSE=/home/bidule/{a,b,c}.tex
$ echo $CHOSE
/home/bidule/{a,b,c}.tex


 
Tu pourrais faire

CHOSE="`echo /home/bidule/{a,b,c}.tex`"

Mais ça ne me semble pas formidable pour l'objectif "script plus propre" [:petrus75]

Reply

Marsh Posté le 02-06-2005 à 23:01:46    

Oui pillow, tu as raison. Les accolades ne sont pas interprétées dans ce cas. J'avais fait l'essai avec un echo où ça interprétait les accolades.  La question reste posée.

Reply

Sujets relatifs:

Leave a Replay

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