BASH: eval de variable foireu
Résolu
kanar
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
kanar Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
kanar Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
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 - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation