Shell conditionnelle dans le makefile
Ne peux pas obtenir que cela fonctionne , tout essayé pour le conditionnel [] bash supports de citations etc
Si $$? != "0" jamais les matchs, mais le $$? est non nul, de temps en temps. Des idées ?
test: testdrivers
-@rc=0; \
for file in $(TSTFILES); do \
./$$file; \
if $$? != "0" ; then \
echo test fail;\
rc=`expr $$rc + 1` ;\
fi \
done; \
echo; echo "Tests failed: $$rc"
Vous devez vous connecter pour publier un commentaire.
La bonne syntaxe pour une comparaison numérique dans les scripts shell est:
Être sûr vous avez espaces AVANT et APRÈS les crochets. Ils ne peuvent pas être dans le même mot que les arguments.
Aussi il vous manque un point-virgule après le
fi
:];
, comme vous l'avez utilisé, est parfaitement bien. Si je vous l'accorde c'est certainement moins lapidaire.[
est en fait le même programme externe commetest
(bien qu'il est susceptible d'être intégrée dans une grande coquille). Donc,man test
.$rc
variable est non nulle, alors la condition doit être vrai, parce que c'est le seul endroit dans le script (à moins que vous nous avez montré que cette variable est jamais >0. Alors, que voulez-vous dire par "ne correspond pas au conditionnel", et pourquoi pensez-vous cela? Si elle a travaillé dans un script séparé, alors que vous aviez un problème avec les barres obliques inverses et des points-virgules, ou bien en citant des variables. Si vous êtes heureux avec ce que vous avez bien. Si vous voulez comprendre ce que vous avez fait de mal, merci de lire mon commentaire ci-dessus et fournir les détails requis. Cheers!Utilisation ci-dessous un exemple:
sortie sera: