Retourner aux forums || Retourner au forum Programmation.shell
Programmation.shell : Fonction utile pour un .bashrc
Posté par Edouard Gomez (page perso, ) le 01 septembre 2004
#!/bin/sh
# Fonction: add_tail #3 args
# Desc : Permet de rajouter en fin de variable un nouvel element
# en prenant soin de rajouter l'element separateur si
# nécessaire.
# Params : $1 Le nom de la variable à modifier
# $2 Element à rajouter
# $3 Element separateur
function add_tail()
{
local VARNAME=$1
local NEWTAIL=$2
local SEPARATOR=$3
if [ -n "${!VARNAME}" ] ; then
NEWTAIL="${SEPARATOR}${NEWTAIL}"
fi
# ligne qui merde
${VARNAME}="${!VARNAME}${NEWTAIL}"
}
for dir in "${HOME}/bin ${HOME}/opt/bin" ; do
if [ -d "${dir}" ] ; then
add_tail "PATH" "${dir}" ":"
fi
done
Seulement voilà il essaye toujours d'évaluer (ici éxécuter un prog dont le nom serait l'expansion du contenu pointé par VARNAME) la ligne "qui merde", je peux remplacer le membre de gauche par ${!VARNAME} ou ${VARNAME} ou $VARNAME ou... toujours le même résultat.
./plop.sh: line 13: PATH=/opt/arch/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/opt/mingw32-cross/bin:/opt/java/bin:/opt/ffmpeg/bin:/opt/hugin/bin:/opt/insight/bin:/opt/transcode/bin:/opt/yasm/bin:/home/edy/bin:/home/edy/bin:/usr/share: Aucun fichier ou répertoire de ce typeToute suggestion le bienvenue
> Lire le message (3 commentaires, moyenne: 1).
Je suis trop fort qd mm
J'ai trouvé !
Il faut rajouter eval devant la ligne qui merde :-) A noter que la boucle for était fausse il faut enlever les quotes.
Peu etre inutile
Sinon il existe dans le livre BLFS un ensemble de fonction qui font se genre de chose. Ca pourrait de permettre de comparer.
CMT est peut-etre la solution
Comme je l'avais annoncé dans un journal qui a eu son petit succes[1] (enfin bof), il y a un programme qui fait ca : c'est CMT [2].
Il peut te configurer ton PATH, LD_LIBRARY_PATH et autres variables, tout comme tu veux.
Et en plus une nouvelle version est sortie aujourd'hui (enfin c'est plus un bug-fix) [3].
Il gère tres bien les gros projets de developpement, et (mais c'est mon avis et je le partage) pourrait tres avantageusement remplacer les autotools et automake.
[1] : https://linuxfr.org/~bins/14899.html(...)
[2] : http://www.cmtsite.org(...)
[3] : http://www.cmtsite.org/ReleaseNotes.html(...)
Voilà.
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.shell



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.