Lors de l'écriture d'un script shell, j'ai rencontré un problème avec l'instruction if/else suivante qui se situe quelque part au milieu du script:
if [ $act -eq "add" ]
then
read - "add or update: " $comm
git commit -m "$comm $file"
else
git commit -m "$act $file"
fi
L'erreur de retour étant:
./gitup: line 13: [: add: integer expression expected
et procède ensuite avec le reste du script. Comment puis-je avoir le segment if évaluer/comparer la variable à une chaîne d'entrée plutôt qu'à un entier; une erreur différente était requise lors de l'utilisation de "! =" parmi quelques autres choses que j'ai essayées.
Quelque chose comme ça:
act="add"
if [[ $act = "add" ]]
then
echo good
else
echo not good
fi
-eq
est utilisé pour la comparaison de nombres, utilisez =
pour la comparaison de chaînes
Cette méthode fonctionnerait aussi. Très similaire à la réponse de @ Guru, mais élimine le besoin de doubles crochets.
if [ "$act" == "add" ]
then
echo "Good!"
else
echo "Not good!"
fi