----- "Romain Touzé" <romain.touze@???> wrote:
> Sous linux d'après ce que j'ai vu, sh, n'existe pas. Il s'agit d'un
> alias / redirection vers bash.
> Pour le même besoin, bash a un mode "posix" qui le fait vraiment agir
> comme sh (je ne me rappelle plus de l'option -> man bash).
Oui, donc il existe :)
sh sous Unix est depuis l'antiquité un Bourne shell ou un de ses dérivés, et non plus l'œuvre originale de Ken Thompson.
Par exemple sous OpenBSD :
http://www.openbsd.org/cgi-bin/man.cgi?query=sh&sektion=1&format=html
NetBSD en a dérivé ash.
Debian utilise de plus en plus pour les scripts systèmes un dérivé de ash, dash, plus strict et léger que bash...
http://en.wikipedia.org/wiki/Debian_Almquist_shell
Ça fait bien longtemps que les scripts 'sh' écrits par des Linuxiens tournent généralement sans problème dans bash.
L'inverse est moins vrai, on trouve de plus en plus de bash'ismes dans des scripts supposés portables (#!/bin/sh)...
D'aucuns diront (pour le troll) qu'il en est Un pour les amener tous et dans les ténèbres les lier, zsh.
Sinon pour la compatibilité dans bash :
1)
Brace expansion introduces a slight incompatibility with historical
versions of sh. sh does not treat opening or closing braces specially
when they appear as part of a word, and preserves them in the output.
Bash removes braces from words as a consequence of brace expansion.
For example, a word entered to sh as file{1,2} appears identically in
the output. The same word is output as file1 file2 after expansion by
bash. If strict compatibility with sh is desired, start bash with the
+B option or disable brace expansion with the +B option to the set com-
mand (see SHELL BUILTIN COMMANDS below).
2)
--posix
Change the behavior of bash where the default operation differs
from the POSIX standard to match the standard (posix mode).
Bien cordialement,
--
Pierre Carrier, Technical Support Engineer
Production Support, EMEA office
Global Support Services
Red Hat, Inc.