我无法弄清楚以下脚本有什么问题。
#!/bin/bash
if [ "$1" = "x" ]
then
echo Pushing web on sharada to origin.
else if [ "$1" = "y" ]
then
echo Pulling web on sharada from origin.
else
echo "Usage : arg x to push or y to pull."
fi
我在xterm
的Linux(Ubuntu)上。
答案 0 :(得分:3)
你错过了最后关闭“fi”。
else if
构造确实不是elif
延续,而是新if
生活在前一个else
的{{1}}子句中。
所以,格式正确你应该:
if
答案 1 :(得分:2)
应该是elif
,而不是else if
,如下所示:
if [ "$1" = "x" ]
then
echo Pushing web on sharada to origin.
elif [ "$1" = "y" ]
then
echo Pulling web on sharada from origin.
else
echo "Usage : arg x to push or y to pull."
fi
答案 2 :(得分:1)
您有两个if
,因此您需要两个fi
。
答案 3 :(得分:0)
已询问的问题已经解决。我只想在这里分享我的经验,因为我得到的错误消息是相同的,即使原因和解决方案稍有不同。
#!/bin/bash
echo "a"
if [ -f x.txt ]; then \
echo "b" \
fi;
echo "c"
此脚本产生了相同的错误消息,解决方法是将缺少的分号添加到echo "b"
行的末尾:
#!/bin/bash
echo "a"
if [ -f x.txt ]; then \
echo "b" ; \
fi;
echo "c"
直接原因与原始问题相同。 if
没有其结束对fi
。但是,原因是fi
行由于缺少;
分号而混入了前一行。