Pages : 1
#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
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
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é !
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
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
Pages : 1