elif声明不起作用

时间:2013-12-27 04:49:12

标签: macos shell unix scripting

我正在尝试使此代码正常工作。如果输入1,则会打开iTunes。如果你输入2,它会打开iPhoto,等等。我使用if / elif / else,我一直在反复检查方法。好像写得好。这是代码:

#!/bin/sh

echo Please choose one.
echo 1. Open iTunes.app
echo 2. Open iPhoto.app
echo 3. Open iMovie.app
read UserChoice

cd /Users/$USER/Applications
if [ “$UserChoice”=“1” ]; then
 open iTunes.app
elif [ “$UserChoice”=“2” ]; then
 open iPhoto.app
elif [ “$UserChoice”=“3” ]; then
 open iMovie.app
else
 echo “Please choose a number.”
fi

然而,每次运行此代码时,它只会侦听第一个“if”语句。因此,如果我输入2或3,它只会打开iTunes,运行第一个if语句。我没有正确使用elif,还是有另一种方法可以使这项工作?

3 个答案:

答案 0 :(得分:2)

您需要在“=”

周围加上空格

喜欢这个

if [ "$UserChoice" = "1" ] ; then

另请参阅this了解详情

答案 1 :(得分:-2)

使用comparator ==而不是[“$ UserChoice”=“1”]将1分配给UserChoice并返回true =>声明永远是真的。

答案 2 :(得分:-2)

打开XX.app语句后输入分号。并确保您使用==检查(比较)而不是=(分配)