|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
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. |
|
|
01
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
Citation:
|
|
|
|
20
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() |
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. |
|
|
01
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Je confirme; je l'ai utilisé dans un vserver Centos5 sur Debian, sans souci.
|
|
|
20
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() |
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 ? |
|
|
10
|
|
|
#7 |
|
Membre Expert
![]() Frédéric Brugmans Informaticien multitâche Inscription : février 2005 Messages : 661 ![]() |
Rien ne t'empêche d'avoir deux versions d'un programme
|
|
|
40
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() |
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. |
|
|
01
|
|
|
#9 |
|
Membre Expert
![]() Frédéric Brugmans Informaticien multitâche Inscription : février 2005 Messages : 661 ![]() |
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 |
|
Candidat au titre de Membre du Club
![]() |
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. |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() |
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)
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com