Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/01/2011, à 03:53

ehmicky

Compatibilité sh

Salut à tous,
Je voulais me faire une doc sur les différences entre sh et bash, mais je n'arrive pas à exécuter sh sous Ubuntu, car sh est un lien vers dash. J'ai alors voulu installer son paquet, mais je n'en ai pas trouvé. J'ai alors chercher les sources, mais je ne suis pas sûr d'avoir la bonne version.
Au final, je me suis dit qu'au fond ce qui m'intéressait, c'était de savoir quelles étaient les fonctions à éviter pour être portable sous BSD, OpenSolaris, etc., donc j'ai tenté bash --posix, mais cela n'a pas l'air de fonctionner, j'ai tenté plein de bashismes qui je crois bien ne sont pas POSIX mais, même avec l'option posix, bash les comprend.
Sauriez-vous comment je devrais m'y prendre (sans installer une VM) ? Merci smile


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#2 Le 21/01/2011, à 04:26

chopinhauer

Re : Compatibilité sh

Il y a toujours le standard POSIX si tu vaut être sur.

L'option --posix marche assez bien, sinon t'auras le même effet si tu fais un lien symbolique de /bin/sh vers /bin/bash.

Quel genre de bashismes t'as essayé ?

PS : Il y a un chapitre entier sur l'comment écrire des scripts portables dans la documentation de Autoconf. Et il y a même une couche d'abstraction appelée MASH.

Dernière modification par chopinhauer (Le 21/01/2011, à 04:37)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#3 Le 21/01/2011, à 06:01

pode

Re : Compatibilité sh

L'outil checkbashisms du paquet devscripts peut être utile a posteriori.

Hors ligne

#4 Le 21/01/2011, à 06:36

ehmicky

Re : Compatibilité sh

Merci pour vos réponses !
J'ai essayé ça par exemple :

$ bash --posix
$ echo $SHELLOPTS
braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor:posix
$ echo $(( 1 + 1 ))
2
$ echo ${TERM^^}
XTERM
$ echo ${TERM/#x?e/_}
_rm
$ coproc echo
[1] 1698

Le manuel décrit en détail cette option, et elle est pas suffisante pour être sûr de faire tourner ses scripts sous BSD par exemple.

Documentation d'Autoconf :

you should not take advantage of features that were added after Unix version 7, circa 1977

big_smile big_smile big_smile

Dernière modification par ehmicky (Le 21/01/2011, à 06:48)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#5 Le 21/01/2011, à 14:30

FRUiT

Re : Compatibilité sh

Sinon pour vérifier des commandes, moi je fais un miniscript avec le shabang #!/bin/sh , que je modifie en /bin/bash pour étudier des différences de comportement.


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#6 Le 21/01/2011, à 14:48

chopinhauer

Re : Compatibilité sh

ehmicky a écrit :

Documentation d'Autoconf :

you should not take advantage of features that were added after Unix version 7, circa 1977

big_smile big_smile big_smile

Oui, il faudrait faire un recensement plus réaliste. Il y a bien de légendes autour d'un PDP 11 qui tourne à Berkeley et qui est connecté à Internet. Cependant les efforts de standardisation comme POSIX ont surement eu leurs effets.

Beaucoup de systèmes Unix ont perdu la plupart de leur marché et influence. Un script qui marche sur 99.9% des système est bien portable, sachant qu'un administrateur peut toujours casser des choses.

Dernière modification par chopinhauer (Le 21/01/2011, à 14:48)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#7 Le 22/01/2011, à 04:55

ehmicky

Re : Compatibilité sh

FRUiT a écrit :

Sinon pour vérifier des commandes, moi je fais un miniscript avec le shabang #!/bin/sh , que je modifie en /bin/bash pour étudier des différences de comportement.

Le problème c'est que sous Ubuntu /bin/sh est Dash. Je crois que Dash doit être assez proche de sh, mais bon j'ai essayé de trouver les différences sur Google, et j'ai pas réussi.


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#8 Le 22/01/2011, à 11:39

FRUiT

Re : Compatibilité sh

J'avais toujours cru que dash était sh moi... En tout cas quand on voit l'écart de fonctionnalités entre dash et bash, je pense qu'ils doivent être très très proches (sh et dash donc). Mais je me trompe peut-être...

Dernière modification par FRUiT (Le 22/01/2011, à 11:39)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne