Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DébatsForum - Débats
  • RSS Forum - Débats - 328385Cette discussion

Débattez, trollez sur les distributions, les logiciels libres ....
Mais attention, débat ne veut pas dire insultes ! Restez courtois, merci.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Débats » Sondage pour les scripteurs
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
Sondage pour les scripteurs
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 4 septembre 2007 à 20:15

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"

Re: Sondage pour les scripteurs
Auteur: francoisp (IP enregistrée)
Date: le 5 septembre 2007 à 06:38

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....

Re: Sondage pour les scripteurs
Auteur: francoisp (IP enregistrée)
Date: le 5 septembre 2007 à 06:42

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...

Re: Sondage pour les scripteurs
Avatar
Auteur: Fanch (IP enregistrée)
Date: le 5 septembre 2007 à 08:18

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

Re: Sondage pour les scripteurs
Avatar
Auteur: nicola (IP enregistrée)
Date: le 5 septembre 2007 à 08:57

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) -+-

Re: Sondage pour les scripteurs
Auteur: undeplus (IP enregistrée)
Date: le 5 septembre 2007 à 10:20

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

Re: Sondage pour les scripteurs
Avatar
Auteur: Fanch (IP enregistrée)
Date: le 5 septembre 2007 à 11:40

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

Re: Sondage pour les scripteurs
Avatar
Auteur: tg(y) (IP enregistrée)
Date: le 5 septembre 2007 à 20:00

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

Re: Sondage pour les scripteurs
Auteur: francoisp (IP enregistrée)
Date: le 6 septembre 2007 à 06:34

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

Re: Sondage pour les scripteurs
Avatar
Auteur: tg(y) (IP enregistrée)
Date: le 6 septembre 2007 à 14:46

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

Re: Sondage pour les scripteurs
Auteur: francoisp (IP enregistrée)
Date: le 6 septembre 2007 à 17:22

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

Re: Sondage pour les scripteurs
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 6 septembre 2007 à 22:11

man bash a écrit :


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"



Seules les personnes enregistrées peuvent poster sur ce forum.
Ce forum est boosté par Phorum.