Bash et dash

Bonjour, tous et toutes! :smt058

Bon, je viens de lire que la prochaine Squeeze intègrera probablement dash.

Tous ceux qui viennent d’Ubuntu connaissent (ou ont connu) dash.
Mais qu’en pensent les débianneux purs et durs, les “vrais” du Debian de l’Ouest Lointain?

En gros, je voudrais savoir ce qui vous fait préférer bash à dash ou dash à bash.

D’avance, merci!

A bientôt :smt006

EDIT un lien peut-être intéressant que l’on me propose d’ajouter au débat Sur bash et dash

D’après ce que j’ai pu lire de dash :smt019 , ce sera bash pour moi, sans hésiter ! :smt024

Je n’ai pas pu m’en empécher…

Plus sérieusement, pourquoi nous ajouter Dash alors que Bash fonctionne très bien…
Je crois savoir que Ubuntu souhaite se rapprocher de Debian, c’est le premier pas ? blogs.computerworld.com/14499/sh … _operation

:open_mouth: Qui est-ce qui a osé “bullshitter” ça et qui ne l’a pas recouvert? :smt076
(Oui, ricardo, tu peux me frapper, c’est un anglo-néologisme de mon cru, cette fois, mais je suis trop en colère pour me rendre plus urbaine. :smt013 )
D’où sortent-ils que le projet Debian n’a pas écouté les remarques de Murdock? Et qu’il n’écoutera pas non plus Trucmuche-l’ubuntero qui vient fumer le calumet de paix alors que la guerre n’est même pas d’actualité?

Euh :blush:
Bon.

Bon, bon, bon. Je ne développe pas et je me reprends. :smt012

@ pendrifter : est-ce que tu penses que c’est aussi une question d’habitude?
Moi, je ne connais pas assez les deux langages, mais bon, forcément, comme j’apprends bash, je deviens partiale.

@ lol : Tu me fais plaisir. Je n’aurais jamais osé aller chercher la photo de la lessive, moi, mais voilà : j’en ai rêvé, lol l’a fait. :smt003
Pour le reste, c’est parce que je me pose un peu la même question que toi que j’ai lancé cette discussion. En réalité, je suis loin de comprendre encore les tenants et aboutissants de cette histoire, parce que dash, j’ai dû le survoler (et très vite).

Si quelqu’un sait, en tout cas, qu’il nous instruise!

Merci beaucoup pour vos réponses, à très vite! :smt006

Je vais peut être dire une bêtise, mais il me semble que dash est surtout la pour servir de /bin/sh.
En fait un script qui commence par #!/bin/sh devrait être interprétable sur tout les shells.

Or pour l’instant sous debian /bin/sh est un lien symbolique vers /bin/bash. En théorie quand on appelle bash avec #!/bin/sh, il doit se comporter non pas comme bash mais comme sh, or ce n’est pas vraiment le cas. Ainsi, les gens on tendance à penser que leur script est portable, car il commence par #!/bin/sh, mais en fait il ne tourne qu’avec bash; bref le truc dégueulasse quoi…

/bin/dash par contre n’as pas ce problème lorsqu’on l’appelle avec /bin/sh. Donc c’est plus propre d’utiliser dash pour exécuter des scripts commençant par #!/bin/sh.

Maintenant, hors de question du l’utiliser en ligne de commande interactive ou avec /bin/dash.

Donc la question dash vs bash ne se pose pas.

Et dans la catégorie, Wikipédia est ton ami:

[quote]dash est une solution de remplacement de Bash au sein de Debian et devait être le /bin/sh par défaut de Debian Lenny. C’est l’un des objectif de Debian Squeeze.

Depuis la version 6.10 (octobre 2006), dash est le /bin/sh d’Ubuntu. Durant cette transition, l’équipe à découvert que nombre de scripts contenaient de la syntaxe spécifique à Bash sans le déclarer. Pour éviter les erreurs, les scripts contenant du code spécifique à Bash (tout en étant déclarés comme compatibles POSIX) ont été modifiés pour coller aux standards, ou explicitement déclarés à l’aide la la ligne #!/bin/bash.

Pour Debian, la volonté de rendre les scripts Bash (non déclarés) de la distribution compatible avec dash (et n’importe quel shell POSIX) ou à défaut de les déclarer comme dépendant de Bash est toujours présente.[/quote]
http://fr.wikipedia.org/wiki/Debian_Almquist_shell

Oui mais est-ce que Dash ne pourrait pas remplacer Bash à long terme ? Après tout, le but #1 de Bash c’est marqué dans le manuel: “It’s too big and too slow”… Et dites moi si je me trompe mais si les 2 shells implémentent le Shell Command Language, on pourrait prendre un nouveau départ avec Dash, surtout si ça accélère le boot de Linux.

Enfin ce ne sont que des suppositions mais quand même…

[quote=“SuperNinja”]Oui mais est-ce que Dash ne pourrait pas remplacer Bash à long terme ? Après tout, le but #1 de Bash c’est marqué dans le manuel: “It’s too big and too slow”… Et dites moi si je me trompe mais si les 2 shells implémentent le Shell Command Language, on pourrait prendre un nouveau départ avec Dash, surtout si ça accélère le boot de Linux.

Enfin ce ne sont que des suppositions mais quand même…[/quote]

Ce que j’en ai lu, c’est qu’à la ligne de commande, on y perd : pas de complétion par tabulation, pas de history … des choses comme ça.
'fin bon, je ne la ramène plus : je n’ai pas encore utilisé dash :stuck_out_tongue:

Cela dépends.
Le bash langage de script, surement — personnellement tous mes script commencent par #!/bin/sh.
Cependant, en ligne de commande interactive, je ne vois pas en quoi Dash est mieux que Bash. Donc de ce côté là, je ne pense pas que l’avenir de bash soit remis en question.

[quote=“cantor”]
Donc la question dash vs bash ne se pose pas.[/quote]

D’ailleurs, je ne comptais pas la poser. Mais peut-être ai-je formulé de travers.
Ma question initiale, le sens que je voulais lui donner, en tout cas, c’est : est-ce que certains d’entre nous seraient “pro-bash” à l’exclusion totale de toute utilisation de dash ou est-ce que certains considèrent qu’il s’agit d’une avancée réelle, pour Debian, d’utiliser dash.

Cela dit, je n’ai rien contre dash, comme je le disais plus haut, parce qu’à part survoler les wiki et autres documentations diverses, je n’en sais pas assez du point de vue “expérimental”, si je puis dire, pour me prononcer à ce propos. (c’est-à-dire, est-ce que oui ou non, c’est une amélioration).

Maintenant, je te remercie pour ta réponse, très claire, qui m’édifie déjà bien.
@pendrifter : ce que tu dis n’est pas réjouissant, j’abuse de la touche tab, moi :blush:
@SuperNinja : je me doutais bien que tu allais dasher à fond cette discussion, polisson, va. :smt016

Dans ce cas là je pensais surtout au long terme, que se passera t’il quand Dash aura la complétion tant attendue, et l’historique des commandes ? Mystère ![quote]@SuperNinja : je me doutais bien que tu allais dasher à fond cette discussion, polisson, va[/quote]Mais quand Bash aura disparu, vous aurez toujours Bash.org pour vous souvenir du bon vieux temps :smiley:

En fait, je pense simplement que si Ubuntu a pu faire un boot beaucoup plus rapide grâce à Dash, d’aucun pourrais s’imaginer que (à long terme encore une fois) Dash pourrais remplacer Bash en tant que véritable shell.

Mais bien entendu Dash reste encore un début qui n’a pas de complétion ni d’historique, c’est qui est très nul j’en conviens.

[quote=“Duxlebowski”][quote=“cantor”]
Donc la question dash vs bash ne se pose pas.[/quote]

D’ailleurs, je ne comptais pas la poser. Mais peut-être ai-je formulé de travers.
Ma question initiale, le sens que je voulais lui donner, en tout cas, c’est : est-ce que certains d’entre nous seraient “pro-bash” à l’exclusion totale de toute utilisation de dash ou est-ce que certains considèrent qu’il s’agit d’une avancée réelle, pour Debian, d’utiliser dash.
[/quote]
Ce que je voulais dire, c’est que dash a pour seul rôle de faire des scripts portable. Ni plus ni moins. Avec bash, les gens qui veulent faire des script portables ne sont jamais sûr que le script soit vraiment portable. C’est un bug !

Est ce une avancée d’avoir corrigé ce bug ? Bien sûr !
Les pro-bash continueront d’utiliser bash. La décision de Debian ne les concerne pas. Bash sera toujours la ligne de commande par défault.

Maintenant, rien ne justifie d’utiliser bash au lieu de dash pour interpréter des scripts POSIX (/bin/sh).

Merci, cantor : là, j’y vois bien clair!
A bientôt!
:smt006

Il y’a quelques jours (lors du passage en testing de la dernière version de dash), j’ai accepté d’utiliser dash comme /bin/sh. J’espérais gagner un peu de temps au démarrage parce que c’était l’un des principaux gains annoncés. Verdict de bootchart : 24sec avec bash, 23 avec dash… c’est pas vraiment le gain flagrant que j’espérais.

En tout cas il semble que dash sera le /bin/sh par défaut à partir de squeeze, puisque ça fait partie des “release goal”.

[quote=“BeberKing”]Verdict de bootchart : 24sec avec bash, 23 avec dash… c’est pas vraiment le gain flagrant que j’espérais.
[/quote]

Ca alors! :open_mouth:
En effet, tu parles d’une performance!

Bon, je suppose qu’il existe d’autres très bonnes raisons d’utiliser dash. :mrgreen: Si quelqu’un peut nous dire?

Une seconde c’est déjà pas mal… :wink:
Plus sérieusement, quitte à me répéter, la raison principale de l’utilisation de dash est la portabilité.

dash c’est un logiciel Debian donc par défaut c’est bien. Dash c’est fait pour les script d’init principalement donc le commun du mortel s’en fout. Dahs poursuit deux buts :
[ul]
[li]être plus strict sur la norme POSIX[/li]
[li]être bien plus léger et plus rapide[/li][/ul]

Donc oui dash c’est cool et ça va rapidement remplacer nos liens entre bash et sh. :smiley:

Voilà! En deux posts, vous avez répondu à toutes mes interrogations!
:smt023 :smt023 :smt023
Merci BEAUCOUP à tous les deux! j’ai cru que ça n’arriverait jamais.

:smt006

Je n’ai pas tout suivi de ce fil, donc : indulgence.
Je ne connais pas du tout Dash alors ma question est simple :
la syntaxe est-elle exactement la même pour les deux langages :question:

La différence entre Bash et Dash doit être la même qu’entre Bash et Sh.

Un petit lien pour expliquer les différences (relativement faible en mode non interactif):
http://www.ugrad.cs.ubc.ca/~cs219/CourseNotes/Unix/shell-Differences.html (en anglais)

À retenir, sh ne peut pas suivre les liens symboliques de manière transparente, et sh ne gère pas les alias. Ce sont les deux différences majeurs que j’ai trouvées.

Sinon la syntaxe est la même — peut-être que la syntaxe des tableaux diffère si j’en crois certains commentaires glanés sur le net[1].

[1]http://www.unix.com/shell-programming-scripting/10085-what-differences-between-bash-sh.html