Je crée un jeu-questionnaire sous UNIX avec l'utilitaire VoiceOver sur Mac OS X. Mon script shell est ci-dessous. Pourquoi ma condition if-else ne fonctionnera-t-elle pas? Des idées?Scripting shell UNIX - si autre condition
#!/bin/sh
clear
echo "Hey Gamers! Thanks for playing MARVEL COMICS"
echo "What is your super hero name?"
say -v Victoria "What is your super hero name?"
read name
echo "$name, sounds like a pretty epic hero."
say -v Victoria "$name, sounds like a pretty epic hero."
echo "See if you know the names of other epic heroes from Marvel Comics."
say -v Victoria "See if you know the names of other epic heroes from Marvel Comics."
echo "#1. World War 2 Veteran, Steve Rogers, is also known by what super hero name?"
say -v Victoria "World War 2 Veteran, Steve Rogers, is also known by what super hero name?"
read answer1
if [$answer1 = "captain america"]
then
echo "CORRECT. - Steve Rogers is Captain America."
say -v Victoria "Correct. Steve Rogers is Captain America.";
else
echo "INCORRECT. - Steve Rogers is Captain America"
say -v Victoria "Incorrect. Steve Rogers is Captain America"
fi
essai avec 'si [ "answer1 de $"= "captain america"]' (regardez les espaces) – higuaro
Merci, higuaro. Malheureusement, la méthode des guillemets doubles ne corrige pas le programme. – ctaylorgraphics
Notez l'espace après le '['. '[' est une commande, mais il est très peu probable que la valeur de '$ answer1' soit telle que' [$ answer1' est une commande valide. Vous voulez que '" $ answer1 "' soit le premier argument de la commande '[', vous devez donc insérer un espace après le '['. C'est beaucoup plus clair si vous utilisez 'test' au lieu de' ['. –