Я делаю пустяковую игру в UNIX с утилитой VoiceOver для Mac OS X. Мой сценарий оболочки ниже. Почему мое условие if-else не будет работать? Есть идеи?UNIX shell scripting - if else 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
испытание его с ', если [ "$ answer1"= "Капитан Америка"]' (смотреть на пространствах) – higuaro
Спасибо, higuaro. К сожалению, метод двойной кавычки не исправляет программу. – ctaylorgraphics
Обратите внимание на пробел после '['. '[' является командой, но очень маловероятно, что значение '$ answer1' таково, что' [$ answer1' является допустимой командой. Вы хотите, чтобы '' $ answer1 "' был первым аргументом команды '[', поэтому вам нужно вставить пробел после '['. Это намного яснее, если вы используете 'test' вместо' ['. –