IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[ksh] Redéfinir le comportement par défaut


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    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

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    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]
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    La manip' que tu me donne ne fonctionne pas

    Par contre ma pirut me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ¤ 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

  4. #4
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    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)
    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

  5. #5
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    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 ?

  6. #6
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 : 5 196
    Par défaut
    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.....

  7. #7
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSD] Validation whitespace comportement par défaut.
    Par Stessy dans le forum Valider
    Réponses: 2
    Dernier message: 29/11/2011, 15h16
  2. Réponses: 4
    Dernier message: 13/04/2011, 11h40
  3. Comportement par défaut d'un JTree
    Par HichIHM dans le forum Composants
    Réponses: 7
    Dernier message: 19/02/2011, 15h07
  4. [JAXB] Comportement par défaut
    Par le2tbomi dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 08/10/2010, 17h00
  5. [JScrollPane] Comportement par défaut scrollbar vertical
    Par maxime_c dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 25/03/2009, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo