分页: 1 / 1

shell小程序的问题。

发表于 : 2006-12-16 18:28
KyTor
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
    break
done
echo "You have selected $var"


保存为hello
执行./hello结果出现如下问题。
What is your favourite OS?
./hello: 3: select: not found
./hello: 4:     break: not found
./hello: 5: Syntax error: "done" unexpected

谁能帮我解释一下?

发表于 : 2006-12-16 18:33
eexpress
for ..in..

发表于 : 2006-12-16 18:47
KyTor
……这个不是循环啊。这个是wiki上面的例子,不过不知道是怎么回事,我这边就无法运行,老报错。

发表于 : 2006-12-16 22:16
eexpress
到,你那个是sh。用sh执行。不是用缺省的bash执行。

发表于 : 2006-12-17 10:09
KyTor
eexpress 写了:到,你那个是sh。用sh执行。不是用缺省的bash执行。
汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。

发表于 : 2006-12-18 9:55
aBiNg
KyTor 写了:汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。
作者leal的意思应该是:break语句前是四个空格,然而如果你是复制过去直接运行,由于网页编辑的某些原因会出错,请手动输入几个空格,应该可以了。

发表于 : 2006-12-18 17:39
KyTor
helo_aBiNg 写了:
KyTor 写了:汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。
作者leal的意思应该是:break语句前是四个空格,然而如果你是复制过去直接运行,由于网页编辑的某些原因会出错,请手动输入几个空格,应该可以了。
嗯,按leal上面所说的,是/sh,但我却提示错误,而改成bash后就可以了。当然我按照你所说的,空格正确输入,问题得到解决。但原因是为什么。需要四个空格?

那个空格有问题!

发表于 : 2006-12-28 9:30
brenbo
你可以用鼠标选择看看,他占了两字的位置。

发表于 : 2007-02-08 17:17
wellbring
是不是你没加分号啊?