BASH: eval de variable foireu
Résolu
kanar
Messages postés
20
Statut
Membre
-
kanar Messages postés 20 Statut Membre -
kanar Messages postés 20 Statut Membre -
Bonjour,
Un de mes scripts en bash me fait un eval d'une variable qui, je pense, est un peu foireu.
La myopie étant visiblement en train de s'installer chez moi, j'aurais besoin d'un oeil neuf sur l'eval en question.
Il y a trois fonctions dans la chaine d'appel (je ne compte pas celle de formatage).
#appel la fonction list_pkg_installed, et donne une réponse formatée
#appel la fonction pkg_installed, et donne en réponse la liste des paquets non installés
#à priori ce serait l'eval placé dans cette fonction qui ne fonctionne pas.
#test si un paquet est installé, et renvoi 0 si oui 1 sinon
Merci par avance
Un de mes scripts en bash me fait un eval d'une variable qui, je pense, est un peu foireu.
La myopie étant visiblement en train de s'installer chez moi, j'aurais besoin d'un oeil neuf sur l'eval en question.
Il y a trois fonctions dans la chaine d'appel (je ne compte pas celle de formatage).
#appel la fonction list_pkg_installed, et donne une réponse formatée
test_deps_check
#appel la fonction pkg_installed, et donne en réponse la liste des paquets non installés
#à priori ce serait l'eval placé dans cette fonction qui ne fonctionne pas.
list_pkg_installed
#test si un paquet est installé, et renvoi 0 si oui 1 sinon
pkg_installed
#Test de la fonction test_deps_check
test_deps_check mavar "zlib1g-dev libexpat1-dev paquetBato"
echo -e $mavar
#Usage : test_deps_check mavar_ret "liste de paquets"
test_deps_check()
{
...
list_pkg_installed pgk_ni ${2}
if [ $? -eq 0 ]
then
greener_text ok "INSTALLÉ"
eval "$1='${ok}'"
return 0
else
#DEBUG: Affiche la liste des paquets testés et le contenu retour de list_pkg_installed, mais la variable $pkg_ni reste vide
echo -e "\$2 = ${2}\n\$pkg_ni = ${pkg_ni}"
redder_text failed "À INSTALLER : ${pkg_ni}"
eval "$1='${failed}'"
return 1
fi
}
#Usage : list_pkg_installed mavar monpkg1 monpkg2 monpkg3 ...
list_pkg_installed()
{
...
#stockage du nom de la variable passée en paramètre
var_list_pkg_notinst=${1}
#vidange de la variable
eval "$var_list_pkg_notinst=''"
shift
#Marqueur pour le choix du return
marqueur=0
#Faire le test sur chaque paquet un à un
while [ $# -ne 0 ]
do
#cette fonction est bonne
pkg_installed ${1}
#Si le paquet n'est pas installé on le rajoute à la liste des manquants
if [ $? -eq 1 ]
then
#DEBUG: Affiche le nom du paquet testé et absent
echo "test paquet $1 : absent"
marqueur=1
#Evalu le nom de la variable contenu dans var_list_pkg_notinst,
#et ajoute le paquet actuel ($1) à cette variable
#eval "$var_list_pkg_notinst=\"\${${var_list_pkg_notinst}} ${1}\""
eval "$var_list_pkg_notinst='${1}'"
fi
shift
done
return $marqueur
}
Merci par avance
A voir également:
- BASH: eval de variable foireu
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell