OVH Cloud OVH Cloud

substitution de commande et variable

16 réponses
Avatar
Christophe PEREZ
Bonjour,

Je ne suis pas sûr d'avoir mis exactement le bon titre.

En bash, je peux faire :
${VARIABLEquelque_chose}
Mais si par exemple VARIABLE égale le résultat d'une commande genre :
VARIABLE="$(grep machin fichier)"

Est-il possible, par un syntaxe bien trouvée (mais pas par moi) de le
faire en une commande sans passer par cette VARIABLE intermédiaire bien
souvent inutile ?
Genre :
VARIABLE=${ (grep machin fichier)/machin/truc}
J'ai essayé des multitudes de choses possibles, mais sans jamais y
arriver.

Tiens, tant que j'y suis à parler de ma lecture de man bash, j'ai 2
questions :
1) Que veut donc dire :
${paramètre:début:longueur}
[...]Si le début est négatif,
sa valeur est considérée à partir de la fin du contenu du
paramètre.
$ A="bonjour"
$ echo "${A:-1:4}"
bonjour

?

2) Puisque les tableaux dans bash ne peuvent avoir qu'une dimension,
comment simuler une multi-dimension ?
J'ai bien pensé à faire un :
ARTICLE1=("param 1" "param2" ...)
ARTICLE2=("param 1" "param2" ...)
Puis traiter le ARTICLE$I, mais ça me pose quelques problèmes de forme,
je ne connais pas le nombre d'articles, et si je m'arrête au premier
vide, cela veut dire que tous les numéros doivent se suivre sans qu'il y
ait de trous.
Enfin bref, comment faites-vous ?

En bash, hein, en bash ! Car tout ça, c'est plus par curiosité que par
besoin.

--
Christophe PEREZ
Écrivez moi sans _faute !

6 réponses

1 2
Avatar
Christophe PEREZ
Le Wed, 28 Jan 2004 20:21:57 +0100, Stephane Chazelas a écrit:

Alors, c'est que tu prends un shell pour ce qu'il n'est pas: un
langage de programmation.


mea culpa

printf '%sn' "${A: -4}"


Oui, ça a été dit pas Bernard.

Utilise awk ou perl, si tu veux depuis un script shell. Même
Lisp, si tu veux, allez ;).


Heureusement que j'avais précisé que ça était surtout par curiosité :-)

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Christophe PEREZ
Le Wed, 28 Jan 2004 20:22:51 +0100, Stephane Chazelas a écrit:

Du masochisme mal placé. Les vrais masochistes écrivent en Lisp.


On ne peut pas non plus être parfait ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Bernard Déléchamp
Christophe PEREZ wrote:

[...]

J'y passe mon temps dans ce man, seul pb, c'est que je n'y comprends pas
grand chose ;-)


Mieux vaut sans doute investir une trente-cinquaine d'euros dans le
bouquin édité par O'Reilly, Learning the bash shell, que tu pourras
trouver chez fnac.fr, eyrolles.fr, amazon.fr. Ikarios ne l'a pas à son
catalogue, mais pourrait peut-être le fournir.

Amicalement.

--
Il m'est arrivé de prêter l'oreille à un sourd. Il n'entendait pas
mieux.
Raymond Devos

Avatar
Nicolas Le Scouarnec
J'y passe mon temps dans ce man, seul pb, c'est que je n'y comprends pas
grand chose ;-)
Mieux vaut sans doute investir une trente-cinquaine d'euros dans le

bouquin édité par O'Reilly, Learning the bash shell, que tu pourras
trouver chez fnac.fr, eyrolles.fr, amazon.fr. Ikarios ne l'a pas à son
catalogue, mais pourrait peut-être le fournir.


Le manuel (user-friendly) de ZSH est pas mal pour apprendre quelques
trucs sur le shell: http://zsh.sunsite.dk/Guide/

--
Nicolas Le Scouarnec
http://nlsn.free.fr (Slrnfr, Docs Linux/BSD, La grippe, ... )


Avatar
Christophe PEREZ
Le Thu, 29 Jan 2004 13:44:30 +0000, Nicolas Le Scouarnec a écrit:

Le manuel (user-friendly) de ZSH est pas mal pour apprendre quelques
trucs sur le shell: http://zsh.sunsite.dk/Guide/


Merci à tous les deux.
Il va falloir effectivement qu'un jour j'investisse dans des bouquins,
mais quand j'ai à le faire, je ne sais jamais quoi choisir, alors je ne
prends rien. ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Nicolas Le Scouarnec
Le manuel (user-friendly) de ZSH est pas mal pour apprendre quelques
trucs sur le shell: http://zsh.sunsite.dk/Guide/
Merci à tous les deux.

Il va falloir effectivement qu'un jour j'investisse dans des bouquins,
mais quand j'ai à le faire, je ne sais jamais quoi choisir, alors je ne
prends rien. ;-)


Perl plutot que le shell pour faire des scripts alors... C'est plus
puissant, plus propre, plus "sécurisé". Le shell, c'est surtout bien
pour taper directement a la ligne de commande.


--
Nicolas Le Scouarnec
http://nlsn.free.fr (Slrnfr, Docs Linux/BSD, La grippe, ... )


1 2