Si vous avez écrit des sripts shell sur un système UNIX proprio et que vous essayez de les faire tourner sur Linux, vous pouvez rencontrer quelques problèmes. Avant de vous lancer dans la reécriture de votre script, vous pouvez d'abord essayer cette commande qui peut vous faire gagner du temps:
set -o posix
(Cette commande permet de désactiver le mode posix)
Si vous voulez retourner dans le mode posix:
set +o
# Re: Faire marcher des scripts sh non posix sur Linux
Posté par Anonyme . Évalué à 1.
Qu'on trouverait avec le noyau hurd ou n'importe quel autre noyau. Mais qui ne serait pas forcement vrai avec un autre shell et le noyau Linux.
Cette astuce s'applique donc en fait au système GNU.. couplé du noyau Linux ou pas...
[^] # Re: Faire marcher des scripts sh non posix sur Linux
Posté par Anonyme . Évalué à 1.
Pas très claire ton histoire ... :-)
L'option en question s'applique à bash, bien-sûr ...
Ce n'est pas dit dans l'article (certes cela manque), mais cela n'est pas très clair non plus dans ton texte.
[^] # Re: Faire marcher des scripts sh non posix sur Linux
Posté par crevette . Évalué à 0.
[^] # Re: Faire marcher des scripts sh non posix sur Linux
Posté par Ju. . Évalué à 1.
"Faire marcher des scripts sh non posix sur Linux"
ca devrait etre :
"Faire marcher des scripts sh non posix sur GNU/Linux ou GNU/Hurd ou *BSD"
ou de maniere plus simple :
"Faire marcher des scripts sh non posix avecGNU/Bash"
# Re: Faire marcher des scripts sh non posix sur Linux
Posté par ogallos . Évalué à 1.
# Re: Faire marcher des scripts sh non posix sur Linux
Posté par Cédric Pellerin . Évalué à 1.
[^] # Tour d'horizon des scripts
Posté par Quzqo . Évalué à 1.
- ksh, seul shell POSIX "universel", à condition de respecter la syntaxe strict ksh (et pas la compatibilité sh) qui devrait être nativement exécuté par bash
- csh, non POSIX non maintenu
- tcsh, idem mais maintenu
- sh, reconnu en standard mais limité dans ses possibilités
AMHA, csh et tcsh sont à poubelliser (dans cet ordre de priorité) car plus limités encore que le sh dans leurs constructions syntaxiques. De plus, le csh n'étant plus maintenu, il pose parfois quelques problèmes sur certaines plate-formes (voire corrections entre True64 de 4.0f à 5.1a).
Pour le ksh, les optimisations des UNIX proprios sont très disparates : le ksh sous AIX est _bluffant_ de rapidité alors qu'il s'apparente au chargement d'une JVM (troll ?) sous SGI, fork un peu trop souvent sous True64 et se traine un poil sous Solaris.
Pour commencer avec Motif CDE, une extension ksh, le dtksh, permet de s'initier à la logique callback & widgets même si c'est un poil lourd...
Sous Linux, le bash propose de remplacer le ksh en étendant ses possiblités (syntaxe de boucles type C, ...) et est activement maintenu...
# Re: Faire marcher des scripts sh non posix sur Linux
Posté par Cédric Pellerin . Évalué à 1.
A mon avis, c'est le contraire coté syntaxe :
POSIXLY_CORRECT
If this variable is in the environment when bash starts, the
shell enters posix mode before reading the startup files, as if
the --posix invocation option had been supplied. If it is set
while the shell is running, bash enables posix mode, as if the
command set -o posix had been executed.
A vérifier par les spécialistes...
# correction
Posté par Pierre Berthier (site web personnel) . Évalué à 1.
SHELL BUILTIN COMMANDS
set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
-o option-name
The option-name can be one of the following:
posix Change the behavior of bash where
the default operation differs from
the POSIX 1003.2 standard to match
the standard (posix mode).
The options are off by default unless otherwise
noted. Using + rather than - causes these options
to be turned off. The options can also be speci
fied as arguments to an invocation of the shell.
The current set of options may be found in $-. The
return status is always true unless an invalid
option is encountered.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.