parametres, `cat`, ``, ...
Le
Thomas
bonjour :-)
désolé, je sais pas trop comment appeler ce fil
je faisais
commande -parametres -param "`commande --parametres`"
ça exécutais
commande -parametres -param 'resultat commande'
je voudrais mettre les paramètres dans un fichier séparé, pour pouvoir
les gérer plus facilement
alors je fais
commande `cat fichier-parametres`
avec fichier-parametres qui contient
-parametres -param "`commande --parametres`"
mais ça exécute
commande -parametres -param '"`commande' '--parametres`"'
au lieu de
commande -parametres -param 'resultat commande'
comment est ce qu'il faudrait que je fasse ?
--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
désolé, je sais pas trop comment appeler ce fil
je faisais
commande -parametres -param "`commande --parametres`"
ça exécutais
commande -parametres -param 'resultat commande'
je voudrais mettre les paramètres dans un fichier séparé, pour pouvoir
les gérer plus facilement
alors je fais
commande `cat fichier-parametres`
avec fichier-parametres qui contient
-parametres -param "`commande --parametres`"
mais ça exécute
commande -parametres -param '"`commande' '--parametres`"'
au lieu de
commande -parametres -param 'resultat commande'
comment est ce qu'il faudrait que je fasse ?
--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/

Poser une question


Je crois avoir lu ici même qu'il vaut mieux utiliser :
commande -parametres -param "$(commande --parametres)"
Sauf erreur, ça devrait donc donner :
commande -parametres -param "$(commande $(cat fichier-parametres))"
... mais je compte sur les gourous de ce forum pour me reprendre si
jamais je me fourvoyais.
Cordialement,
--
Olivier Miakinen
Je crois avoir lu ici aussi que le seul argument en faveur de $(...)
était la lisiblité (quand je dis le seul, je ne dis pas qu'il est
négligeable, je dis qu'il n'y en a pas d'autre). Par contre, je crois
avoir lu ailleurs que `...` était plus portable.
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Bonjour,
la lisibilité est un détail, essaye :
echo $(foo $(bar $(foobar foo bar) foo) bar)
avec des `, bon courage.
pour répondre à la question initiale, eval est ton ami, soit :
eval commande $(cat fichier-parametres)
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
eval 'echo' '`eval' 'echo' '\`echo' '\\\`echo' 'nn\\\`' '\`'
'`'
ah oui, la lisibilité :o)
merci :-)
juste une petite question annexe :
j'ai mis -x
et quand j'exécute
eval 'echo' '`echo' '`echo' '\`echo' 'nn\`' '`' '`'
ça me donne
+ eval echo '`echo' '`echo' '\`echo' 'nn\`' '`' '`'
+++++ echo nn
++++ echo nn
+++ echo nn
++ echo nn
nn
j'ai l'impression qu'il fait 50 fois le dernier écho, mais pas ceux
intermédiaires
c'est normal ?
+ eval echo '`eval' echo '\`echo' '\\\`echo' 'nn\\\`' '\`'
'`'
+++ eval echo '`echo' '`echo' 'nn`' '`'
++++++ echo nn
+++++ echo nn
++++ echo nn
++ echo nn
nn
bizarre ...
enfin c'est accessoire, puisque ça donne le bon résultat :-)
--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Oui mais non. Avec un clavier français, c'est plus pratique à taper :)
mais selon le système ça revient en fait au même. Un `command` est vu
comme un $(command) en faisant un ps si elle est dans une autre commande
(un for, ou autres) du moins c'est ce que j'ai constaté sous netbsd avec
sh, sous linux et bash le for n'apparait pas :/. La question était me
semble-t-il que le back-quote engendrerait un sous-shell or sous linux
ni le back-quote ni le $(...) n'aparaissent quand on fait un ps, et la
commande lancée avec bash est sur le shell d'appel dans chaque cas, pas
dans un sous-shell.
Pour bien voir que c'est kifkif, sous linux :
:~$ echo $(ps ax|grep tty1)
6065 tty1 R+ 0:00 -bash 6066 tty1 R+ 0:00 ps ax 6143 tty1 Ss 0:00
/bin/login --
32488 tty1 S+ 0:00 -bash
:~$ echo `ps ax|grep tty1`
6070 tty1 R+ 0:00 -bash 6071 tty1 R+ 0:00 ps ax 6143 tty1 Ss 0:00
/bin/login --
32488 tty1 S+ 0:00 -bash
Amusant, sous NetBSD, avec bash, un sous-shell est invoqué dans les deux
cas (back-quote ou dollar parenthèse)
Bah, je ne suis pas un gourou, je dis simplement que c'est kif kif, et
je le prouve :
En fait avec
commande1 `commande2`
ou
commande1 $(commande2)
bash n'appelle commande1 que quand il a ses arguments, donc après que
commande2 se soit terminée (logique).
--
Welcome to U1 2521 days up
the Message of the Day is up to date.
To get it, strike "cat /etc/motd" then <return>
u1:~$ _
_