Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2008, 16h05   #1
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Par défaut [ksh] Redéfinir le comportement par défaut

Bonjour à tous
Je ne poste pas souvent pour poser des questions, mais la j'avoue, je sèche
Voici mon problème, si vous pouviez m'aider ça serait avec plaisir
*note :
RHEL3 = Red Hat Entreprise Linux 3
RHEL5 = Red Hat Entreprise Linux 5


Sous RHEL3 le comportement par défaut de la fonction echo fait qu'elle interpréte automatiquement le \n, le \t etc...
Citation:
Envoyé par terminal ksh rhel3
$ echo 'bonjour'
bonjour
$ echo 'bonjour\n'
bonjour

$ ./script.sh
echo normal, simple quote
echo normal, simple quote, retour chariot\n

$
Maintenant sous RHEL5 :

Citation:
Envoyé par terminal ksh rhel5
$ echo 'bonjour\n'
bonjour\n
$ echo -e 'bonjour\n'
bonjour

$
$ ./scriptksh.sh
echo normal, simple quote
echo normal, simple quote, retour chariot\n
echo normal, double quote
echo normal, double quote, retour chariot\n
echo normal, simple quote, option -e
echo normal, simple quote, option -e, retour chariot

$
Mais vous avez remarquez qu'avec un script cela ne marche pas, hormis en ajoutant l'option '-e'
Maintenant je modifie le fichier .kshrc pour y rajouter mon alias
Citation:
Envoyé par .kshrc
#modification comportement echo
alias echo='echo -e'
mais le résultat ne change que pour les commandes executées directement dans le shell
voici :
Citation:
Envoyé par terminal rhel5 + alias
$ echo 'bonjour\n'
bonjour

$
$ ./scriptksh.sh
echo normal, simple quote
echo normal, simple quote, retour chariot\n
echo normal, double quote
echo normal, double quote, retour chariot\n
echo normal, simple quote, option -e
echo normal, simple quote, option -e, retour chariot

$
Alors ma question est la suivante : comment redéfinir le comportement par défaut de echo sous RHEL5 pour que celui-ci prennent en compte les scripts ?

ps: dans les scripts, je met bien le #!/bin/ksh pour être sur du shell utilisé, je l'ai trouvé avec $whence ksh
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 09h49   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 499
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 499
Points : 9 682
Points : 9 682
Bonjour,

Quelles sont les version de ksh utilisées ?
As-tu installé la version de ksh se trouvant sur le CD "extra disc" de RHEL 5 ? Si oui, est-ce que tu peux essayer de le désinstaller (juste cette version de ksh), pour remettre la version de ksh livrée par défaut ?

PS : il ne s'agit pas d'une idée à la con passant dans ma tête, j'ai eu ce problème avec RHEL 4


[Edit]

Pour voir la version du shell :
$> set -o emacs
$> ^V

[/Edit]
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 10h26   #3
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
La manip' que tu me donne ne fonctionne pas

Par contre ma pirut me dit :

Code :
¤ ksh - 20060214-1.4.i386 - Le shell ATT Korn Original
J'ai regardé dans mon dvd d'install et j'ai bien ce rpm :
Citation:
Envoyé par RHEL_5 i386 DVD
ksh-20060214-1.4.i386.rpm
je comprend plus trop, la

Ah si trouvé sur le site de rh : RedHat Entreprise Linux 5 : ksh93
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 14h54   #4
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par gangsoleil Voir le message
....
PS : il ne s'agit pas d'une idée à la con passant dans ma tête, j'ai eu ce problème avec RHEL 4
je crois que dans ton cas, c'est un problème qui a été fixé (je te copie l'errata)
Citation:
ksh bug fix update
Advisory: RHBA-2007:0771-2
Type: Bug Fix Advisory
Severity: N/A
Issued on: 2007-11-15
Last updated on: 2007-11-15
Affected Products: Red Hat Enterprise Linux Extras (v. 4)
OVAL: N/A

Details

Updated ksh packages that address various bugs are now available.

KSH-93 is the most recent version of the KornShell by David Korn of AT&T
Bell Laboratories. KornShell is a shell programming language, which is
upward compatible with "sh" (the Bourne Shell).

This update addresses the following bugs:

* the built-in mkdir command did not respect the default ACL when creating
directories.

* a memory leak could occur when command output was redirected to a file.

* an incorrect result was returned from a spawned process if the process
was stopped and started by signals.

* a script containing 'set -m' could spin in a stopped state.

* the shell could crash with a segmentation fault when processing a switch
statement.

Users of ksh should upgrade to these updated packages, which resolve these
issues.

Solution
Before applying this update, make sure that all previously-released
errata relevant to your system have been applied.

This update is available via Red Hat Network. Details on how to use
the Red Hat Network to apply this update are available at
http://kbase.redhat.com/faq/FAQ_58_10188
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 15h02   #5
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Je crois que j'ai ma réponse (décidement je collectionne les topic d'auto-réponse )

Parmis le foutoir du man ksh, on peut lire :
Citation:
Envoyé par man ksh
Aliasing
[...]
Aliases can be created and listed with the alias
command and can be removed with the unalias command.
Aliasing is performed when scripts are read, not while they are exe-
cuted. Therefore, for an alias to take effect, the alias definition
command has to be executed before the command which references t
he alias is read.
[...]
A priori les alias ne prennent pas effet lors de l'exécution d'un script
Il faut rajouter par exemple (alias echo='echo -e') au début du script

Or ça serait bien que je ne modifie pas les scripts, quelqu'un a une idée ?
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 16h34   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
tu peux créer un fichier d'environnement peut etre
et le charger par un pseudo ksh (ksh original renomé en ksho)

qui ferait
#!/bin/ksho
. fichier_environnement

ducoup quand ton script lit
#!/bin/ksh ça appelle le ksh+le fichier d'environnement sans toucher avoir à modifier le script. mais c'est porcasse comme methode.....
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2008, 16h11   #7
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Désolé de ne pas t'avoir répondu plus tôt,
le problème de ta méthode c'est qu'on retombe dans le même problème, l'alias n'est pas étendu au script, j'ai déjà fait le test avec des fichier d'environnement

bon en fin de compte je me suis rabattu sur l'alias en début de fichier, ca en a fait beaucoup, mais bon.
Dommage de ne pouvoir redéfinir ça autrement.

Je marque résolu, merci.
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h07.


 
 
 
 
Partenaires

Hébergement Web