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 11/09/2010, à 20:20

Josepe36

bash ou sh

bonjour

une question simple, juste pour savoir, quelle est selon vous la différence entre bash et sh ?

merci


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#2 Le 11/09/2010, à 20:27

eternal404

Re : bash ou sh

A ma connaissance, sh fut un précurseur dans le domaine, créé par un certain Bourne (Bourne Shell -> sh). Bash en est une version grandement améliorée (Bourne Again Shell -> BASh). Je pense que plus personne n'utilise sh. Bash est en revanche un shell très usité. Par convention, les scripts shell portent encore l'extension .sh, même si elle n'est pas, que je sache, obligatoire.

Un comparatif des différents shells ici:
http://www.faqs.org/faqs/unix-faq/shell/shell-differences/

En espérant avoir pu t'aider wink

Hors ligne

#3 Le 11/09/2010, à 20:30

BERGUERAND

Re : bash ou sh

Aux risque passer pour un ancien combattant (j'ai 65 ans). Mais sh est un shell assez basique, par rapport à bash, csh, tcsh,.. Il y a souvent plus de fonctions, de possibilités...Comme il existe des shell plus dépouillés aussi...
Il doit certainement exister des comparatif?


Alain

Hors ligne

#4 Le 11/09/2010, à 21:47

Josepe36

Re : bash ou sh

bonsoir à vous

j'ai bien lu quelques infos la dessus, en revanche il est difficille de savoir exactement ce qu'il en est.
Je suis actuellement en train d'étudier le fonctionnement d'initramf, et l'on peut constater que le script init est en "sh".
Afin d'utiliser initramf pour lancer mes propre scripts sans lancer une distribution compléte, j'inclus ces scripts dans init.
je suis obligé de gardé l'indication "#! /bin/sh" car bash n'est pas installer dans ce systeme.
A priori sh fonctione comme bash, mais j'aimerai en etre sur surtout au niveau de la syntaxe.


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#5 Le 11/09/2010, à 22:05

HP

Re : bash ou sh

eternal404 a écrit :

Je pense que plus personne n'utilise sh.

C'est le shell utilisé par défaut pas les Makefile, c'est aussi le shell utilisé par les appels système (system) dans la plupart des langage de programmation : os.system() pour Python, exec() en C/C++, par exemple… non, non, il est encore très utilisé ! wink

Dernière modification par HP (Le 11/09/2010, à 22:06)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#6 Le 12/09/2010, à 00:48

eternal404

Re : bash ou sh

Merci pour tes précisions HP smile

Hors ligne

#7 Le 12/09/2010, à 01:11

Josepe36

Re : bash ou sh

oui merci
et pour l'utilisation de sh, est ce exactement la meme syntaxe que bash ?


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#8 Le 12/09/2010, à 11:11

BorX

Re : bash ou sh

Non ! Et c'est là la principale différence entre les deux.

sh est un peu le standard du shell.
Commencer un script shell avec #!/bin/sh lui assure une meilleure compatibilité en passant d'un système à un autre.

En revanche, commencer un script shell avec #!/bin/bash permet d'accéder à une syntaxe plus étendue, mais qui ne fonctionnera pas forcément en passant sur d'autres systèmes (AIX, Solaris, ...).

La confusion vient du fait que sh est souvent un alias vers bash (ou dash) sur les systèmes récents, bash étant de plus en plus établi comme nouveau standard :

$ ls -l /bin/*sh
-rwxr-xr-x 1 root root 934336 2010-04-19 04:16 /bin/bash*
-rwxr-xr-x 1 root root 101608 2010-04-02 01:29 /bin/dash*
lrwxrwxrwx 1 root root      4 2010-07-11 23:44 /bin/rbash -> bash*
lrwxrwxrwx 1 root root      4 2010-07-11 23:44 /bin/sh -> dash*
lrwxrwxrwx 1 root root      7 2010-07-11 23:44 /bin/static-sh -> busybox*

Hors ligne

#9 Le 12/09/2010, à 11:15

BorX

Re : bash ou sh

http://princessleia.com/plug/2008-JP_bash_vs_dash.pdf
http://forum.ubuntu-fr.org/viewtopic.php?pid=2968428#p2968428

Dernière modification par BorX (Le 12/09/2010, à 11:20)

Hors ligne

#10 Le 12/09/2010, à 15:28

Josepe36

Re : bash ou sh

bonjour BorX

merci pour ces précisions, je vais méditer la dessus.

bon dimanche


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#11 Le 12/09/2010, à 16:54

sputnick

Re : bash ou sh

Autre chose, quand on lance un script soit avec sh script.sh ou si on met #!/bin/sh bash ( si c'est le shell par défaut comme sous Ubuntu ) se comportera au mieux comme si il était le shell sh : le mode POSIX. C'est pour ça qu'il faut éviter de lancer les scripts avec sh script.sh ou bash script.sh surtout quand on ne connait pas le shebang ( première ligne d'un script avec le chemin de l’exécutable ).
Préférer un

chmod +x script.sh
./script.sh

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne