Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Sondage pour les scripteurs
Envoyé par: oudoubah

Scripteurs, scripteuse,

Il arrive parfois d'affecter en shell le résultat d'une commande dans une variable.

Quelle est votre syntaxe préférée?
variable=$(commande)
ou
variable=`commande`

Personnellement, j'utilise la première version, parce que je trouve que 'alt gr' + '7' n'est pas très pratique à utiliser.


Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 4 September 2007 20:15:55
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: francoisp

il n'y a pas de préférence le fait qu'il existe les deux permet simplement de faire des

variable=`......$(........)...... | $(........).....`

ce qui est tres important pour la gestion des caractères '&" parfois imbriqués dans des commandes un peu longues et surtout ça permet d'obtenir une variable sans passé par X autres avant dont on regrouperai les resultats...

on economise du code, du temps d'execution sur les gros script, moins de risques d'erreurs ou de bugs si le retour est inhabituel etc....

toutefois le standard veut que $() soit privilegié norme shell ksh et bash mais d'un man page à l'autre c'est dit privilégié ou simplement identique donc....

Poste le Wednesday 5 September 2007 06:38:10
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: francoisp

quand à la praticité des code touches altgr+F7 c'est une des raisons pour laquelle je prefere les clavier qwerty car tous (ou presque) les langages ont été prévus/conçus en leur temps y compris les shell unix par des anglosphones sur clavier qwerty donc tout clavier qui n'est pas qwerty (à par les dvorak) sont bien sur un gros ralentissement à la frappe sans parler meme de la praticité de ceux ci...

c'est pourquoi j'ai surtout du qwerty
meme au boulot je balade un clavier perso entre mes differents clients...

Poste le Wednesday 5 September 2007 06:42:59
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: Fanch

pour le peu de scripts que j'écris, les deux me vont bien et je les utilise indifféremment.

------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Wednesday 5 September 2007 08:18:18
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: nicola

J’utilise plutôt les apostrophes à l’envers, sauf quand il faut en imbriquer.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Wednesday 5 September 2007 08:57:04
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: undeplus

pour moi c'est $() plus lisible à mon goût.

Poste le Wednesday 5 September 2007 10:20:00
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: Fanch

mais sinon, à part la différence d'analyse syntaxique, y'a pas d'autre impact ? au final le code exécuté par la cpu est le même ou non ?


------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Wednesday 5 September 2007 11:40:00
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: tg(y)

$(), plus lisible. Et l'autre syntaxe est obsolète, d'après bash(1).

Poste le Wednesday 5 September 2007 20:00:22
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: francoisp

c'est interprété à l'identique comme dit plus haut selon les man pages et les shells (man ksh sous AIX par exemple) il est indiqué comme tel et ça n'existe que pour deux raison
`` ancienne syntaxe qui n'existe plus que pour deux raisons
1- la compatibilité de vieux scripts
2- l'imbriquation
$() nouvelle syntaxe

Poste le Thursday 6 September 2007 06:34:56
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: tg(y)

Pour l'imbrication, on n'a pas besoin de deux syntaxe, des $($()) fonctionnent à merveille.

Poste le Thursday 6 September 2007 14:46:48
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: francoisp

oui mais pas garantie vue que les man pages disent le contraire qu'il faut `` et $() si on imbrique...

Poste le Thursday 6 September 2007 17:22:25
Répondre     Citer    
Re: Sondage pour les scripteurs
Envoyé par: oudoubah

Citation
man bash
Command Substitution
Command substitution allows the output of a command to replace the com-
mand name. There are two forms:


$(command)
or
`command`

Bash performs the expansion by executing command and replacing the com-
mand substitution with the standard output of the command, with any
trailing newlines deleted. Embedded newlines are not deleted, but they
may be removed during word splitting. The command substitution $(cat
file) can be replaced by the equivalent but faster $(< file).

When the old-style backquote form of substitution is used, backslash
retains its literal meaning except when followed by $, `, or \. The
first backquote not preceded by a backslash terminates the command sub-
stitution. When using the $(command) form, all characters between the
parentheses make up the command; none are treated specially.

Command substitutions may be nested. To nest when using the backquoted
form, escape the inner backquotes with backslashes.

If the substitution appears within double quotes, word splitting and
pathname expansion are not performed on the results.

Visiblement, il y a quelque différence avec ksh.

Pour la portabilité, mieux vaut utiliser ``

En bash/linux, on peut imbriquer sans risque les $()

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 6 September 2007 22:11:38
Répondre     Citer    
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
Ce forum !
Sondage pour les scripteurs
Débattez, trollez sur les distributions, les logiciels libres ....
Mais attention, débat ne veut pas dire insultes ! Restez courtois, merci.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons