Vous n'êtes pas identifié(e).
Bonjour à tous !
En tant normal, je poste jamais de post sur le devloppement car tout est logique mais la se soir, c'est étrange .
Voici le code de mon programme:
7) echo -e "$blanc Détection du pacquet $rougefonce Strace $blanc sur le système ... $normal"
rebours 5
strace
if [[ $? == 0 ]]
then
echo -e " $rougefonce Strace $blanc déjà installé [$vertclair OK $blanc] $normal"
else
echo -e "$rougefonce /!\ $orange l'outils n'est pas installé sur le système $rougefonce /!\ $normal"
sleep 2
echo -e "$blanc Démarrage de l'installation de $rougefonce Strace $normal"
sleep 2
aptitude install strace
echo
echo -e "Appuyer sur $vertclair<ENTER>$normal pour continuer ..."
fi
read x
;;
un bout de code tout facile mais quand le programme "strace" est déjà installé, voila comment il se comporte :
^^ avez-vous une explication rationnel a ca ? .
Est ce que se serai les limites du Shell et qu'il commence à ne plus suivre la route et que je devrai convertir tout mon script en python ?
// cela fait 2h15 que j'y suis sur ce bug //
Dernière modification par koorosh (12-10-2014 23:04:11)
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
Je vois, en fait tu ne dois pas faire ainsi,
tu as deux solution soit tu utilise la commande "command -V" soit le test if [ -f $fichier ].
Exemple
icef0x@debian ~ $ command -V top
top est /usr/bin/top
Pour l'option "command", mais je préfère le test
if [ -f /usr/bin/top ]; then
echo "la dépendance top est présente"
top
else
echo "la dépendance top est absente"
aptitude install top
fi
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
ah oui , enfaîte tu check si le fichier de la commande top est bien dans /usr/bin/ sinon tu l'install direct.
"Pourquoi faire compliqué alors qu'on peux faire simple" Merci coyotus de la solution .
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
Le plus propre est d'utiliser la commande :
[== Indéfini ==]
which top
Il faut éviter au maximum de mettre des variables en dur dans le code. Il se peut que pour une raison quelconque, ladite commande ne soit pas dans /usr/bin/top mais dans /path/to/top
Hors ligne
Effectivement , la commande which est nickel . Du coup, je vais revoir l'intégralité de mon script afin de le rendre plus léger que possible car apparemment le scripting SHELL à ces limites lors de l'élaboration de script à grande ampleur .
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
Oui dans le cas ou on ne connais pas le chemin which est utile.
if [ -f $(which top) ]; then
echo "la dépendance top est présente"
top
else
echo "la dépendance top est absente"
aptitude install top
fi
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne