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 :

Utiliser une commande de Bash 4.0 sous Bash 3.0


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    24
    Points
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 22
    Par défaut Utiliser une commande de Bash 4.0 sous Bash 3.0
    Bonjour,

    J'ai développé un script en Bash destiné à tourner sous CentOS.

    J'ai pendant mon développement rencontré un soucis avec les tableaux, j'ai alors demandé de l'aide ici même et une personne a pu m'aider à trouver une solution mais j'ai omis de lui préciser que le script était destiné à Bash 3.0 et non à Bash 4.0. Hors, la solution qu'il m'a fournie, n'est disponible que sous Bash 4.0.

    Le plus bête dans tout ça, c'est que j'ai pris cette modification pour acquis, je l'ai appliquée à tout mon script et faire machine arrière me semble très compliqué.

    Pour info, il s'agit de la commande "declare -A" avec un A majuscule pour indiquer qu'il s'agit d'un tableau associatif.

    J'aurais donc aimé savoir, si un peu comme pour php, il était possible de réécrire certaines fonctions (commandes) de bash pour pouvoir palier à ce problème. Car installer Bash 4.0 sur CentOS ne semble pas être une super idée, tout comme le fait de devoir modifier à nouveau tout mon script.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 620
    Points
    19 580
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 620
    Points : 19 580
    Par défaut
    Bonjour,

    Citation Envoyé par Yokav
    installer Bash 4.0 sur CentOS ne semble pas être une super idée
    bah, pourquoi ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    24
    Points
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 22
    Par défaut
    J'ai fait des recherches pour voir si d'autres personnes avaient déjà tenté l'expérience mais je n'ai rien trouvé... à part un retour de bug pour centos, d'une personne ayant installé bash 4.1 et qui ne pouvait plus se servir de la commande yum du à une modification de lien vers un répertoire.

    Mais si quelqu'un a installé bash 4 sous centos 5.x et pouvait me confirmer que ça fonctionne, je n'hésiterais pas à faire la mise à jour.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 620
    Points
    19 580
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 620
    Points : 19 580
    Par défaut
    Je confirme; je l'ai utilisé dans un vserver Centos5 sur Debian, sans souci.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    24
    Points
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 22
    Par défaut
    Bon bah je crois que je vais m'y risquer alors, je préfère ça que refaire tout le code.

    Merci pour ta confirmation en tous cas, encore une dernière petite question si je peux, tu as installé le paquet de bash 4 à partir de quel dépôt ? epel ?

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 620
    Points
    19 580
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 620
    Points : 19 580
    Par défaut
    J'avais téléchargé les sources, puis compilé/installé.

  7. #7
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Points
    5 915
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Par défaut
    Rien ne t'empêche d'avoir deux versions d'un programme

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    24
    Points
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 22
    Par défaut
    Deux versions d'un programme...c'est vrai qu'on a bien plusieurs versions d'un noyau donc pourquoi pas d'un programme.

    Mais comment savoir quel shell doit être utilisé par défaut ou bien passer de l'un à l'autre ? J'imagine que cela ce fera dans un fichier de config du compte.

  9. #9
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Points
    5 915
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Par défaut
    En ce qui concerne le shell des utilisateurs, ce n'est pas un soucis car le fichier /etc/passwd précise le chemin complet vers bash ( /bin/bash ).

    Pour ton script, idem car le shebang précise le chemin complet vers l'interpréteur.

    Par contre pour déterminer quel version de bash sera lancé depuis un shell, tout dépend de la variable $PATH qui contient une liste de répertoire d’exécutables.

    A toi de décider de modifier cette valeur ou non et de décider si le répertoire d'installation la nouvelle version de bash sera un répertoire qui fait partie de $PATH.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    24
    Points
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 22
    Par défaut
    Merci pour ce complément d'information, ce n'est pas le genre de chose que j'ai l'habitude de faire, cela me semble donc un peu compliqué. Mais je vais faire des recherches, je trouverais certainement de quoi me guider.

    Mon but sera au final de garder la version de centos (bash 3) comme version par défaut, histoire d'être certain de ne pas tout chambouler. Et d'installer bash 4, sans que celle-ci n'aie remplacer/prendre la place de la version courante et de m'en servir uniquement pour exécuter mon script (en ajoutant le chemin vers bash 4 à $PATH).

    Encore merci à vous deux pour vos réponses.

  11. #11
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Points
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Par défaut
    Citation Envoyé par Yokav Voir le message
    Et d'installer bash 4, sans que celle-ci n'aie remplacer/prendre la place de la version courante et de m'en servir uniquement pour exécuter mon script (en ajoutant le chemin vers bash 4 à $PATH).
    Pas forcément besoin de modifier $PATH dans ce cas: comme indiqué par becket, il te suffit de modifier le shebang du script concerné (c'est à dire, la première ligne qui comporte #!/bin/bash par exemple pour la faire pointer vers le binaire de bash4)

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

Discussions similaires

  1. Lancer un logiciel en utilisant une commande matlab
    Par titou08 dans le forum MATLAB
    Réponses: 7
    Dernier message: 08/02/2011, 17h41
  2. Réponses: 6
    Dernier message: 26/03/2009, 13h02
  3. Utiliser une commande UNIX sous Windows XP
    Par issueTracker dans le forum Windows XP
    Réponses: 2
    Dernier message: 16/10/2007, 19h26
  4. Utiliser une commande du DOS
    Par nkd dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 21/10/2005, 08h34
  5. Réponses: 2
    Dernier message: 24/06/2003, 21h31

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