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/05/2011, 16h48   #1
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2007
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 22
Points : 12
Points : 12
Envoyer un message via ICQ à Yokav Envoyer un message via AIM à Yokav Envoyer un message via MSN à Yokav Envoyer un message via Yahoo à Yokav Envoyer un message via Skype™ à Yokav
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.
Yokav est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 17/05/2011, 16h53   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Bonjour,

Citation:
Envoyé par Yokav
installer Bash 4.0 sur CentOS ne semble pas être une super idée
bah, pourquoi ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/05/2011, 09h02   #3
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2007
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 22
Points : 12
Points : 12
Envoyer un message via ICQ à Yokav Envoyer un message via AIM à Yokav Envoyer un message via MSN à Yokav Envoyer un message via Yahoo à Yokav Envoyer un message via Skype™ à Yokav
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.
Yokav est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/05/2011, 12h56   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Je confirme; je l'ai utilisé dans un vserver Centos5 sur Debian, sans souci.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/05/2011, 13h37   #5
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2007
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 22
Points : 12
Points : 12
Envoyer un message via ICQ à Yokav Envoyer un message via AIM à Yokav Envoyer un message via MSN à Yokav Envoyer un message via Yahoo à Yokav Envoyer un message via Skype™ à Yokav
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 ?
Yokav est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/05/2011, 14h09   #6
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
J'avais téléchargé les sources, puis compilé/installé.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/05/2011, 15h44   #7
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Rien ne t'empêche d'avoir deux versions d'un programme
becket est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 18/05/2011, 16h33   #8
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2007
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 22
Points : 12
Points : 12
Envoyer un message via ICQ à Yokav Envoyer un message via AIM à Yokav Envoyer un message via MSN à Yokav Envoyer un message via Yahoo à Yokav Envoyer un message via Skype™ à Yokav
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.
Yokav est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/05/2011, 06h50   #9
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
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.
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/05/2011, 08h56   #10
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2007
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 22
Points : 12
Points : 12
Envoyer un message via ICQ à Yokav Envoyer un message via AIM à Yokav Envoyer un message via MSN à Yokav Envoyer un message via Yahoo à Yokav Envoyer un message via Skype™ à Yokav
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.
Yokav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 09h29   #11
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
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)
Alek-C 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 13h50.


 
 
 
 
Partenaires

Hébergement Web