shell小程序的问题。

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
KyTor
帖子: 222
注册时间: 2006-12-05 22:23
来自: http://www.wengyuanhang.com/
送出感谢: 0
接收感谢: 0
联系:

shell小程序的问题。

#1

帖子 KyTor » 2006-12-16 18:28

#!/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

谁能帮我解释一下?
虔诚的信徒啊!请相信KyTor吧!
http://www.wengyuanhang.com/
------------------
愿上帝赐我平静,接受我无法改变的事;
愿上帝赐我勇气,改变我能够改变的事;
愿上帝赐我智慧,能明辨这两者的差异;
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2006-12-16 18:33

for ..in..
● 鸣学
头像
KyTor
帖子: 222
注册时间: 2006-12-05 22:23
来自: http://www.wengyuanhang.com/
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 KyTor » 2006-12-16 18:47

……这个不是循环啊。这个是wiki上面的例子,不过不知道是怎么回事,我这边就无法运行,老报错。
虔诚的信徒啊!请相信KyTor吧!
http://www.wengyuanhang.com/
------------------
愿上帝赐我平静,接受我无法改变的事;
愿上帝赐我勇气,改变我能够改变的事;
愿上帝赐我智慧,能明辨这两者的差异;
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#4

帖子 eexpress » 2006-12-16 22:16

到,你那个是sh。用sh执行。不是用缺省的bash执行。
● 鸣学
头像
KyTor
帖子: 222
注册时间: 2006-12-05 22:23
来自: http://www.wengyuanhang.com/
送出感谢: 0
接收感谢: 0
联系:

#5

帖子 KyTor » 2006-12-17 10:09

eexpress 写了:到,你那个是sh。用sh执行。不是用缺省的bash执行。
汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。
虔诚的信徒啊!请相信KyTor吧!
http://www.wengyuanhang.com/
------------------
愿上帝赐我平静,接受我无法改变的事;
愿上帝赐我勇气,改变我能够改变的事;
愿上帝赐我智慧,能明辨这两者的差异;
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京
送出感谢: 0
接收感谢: 2 次

#6

帖子 aBiNg » 2006-12-18 9:55

KyTor 写了:汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。
作者leal的意思应该是:break语句前是四个空格,然而如果你是复制过去直接运行,由于网页编辑的某些原因会出错,请手动输入几个空格,应该可以了。
头像
KyTor
帖子: 222
注册时间: 2006-12-05 22:23
来自: http://www.wengyuanhang.com/
送出感谢: 0
接收感谢: 0
联系:

#7

帖子 KyTor » 2006-12-18 17:39

helo_aBiNg 写了:
KyTor 写了:汗死。我这是按wiki上面的例子照搬。不过如果将sh改成bash那还是会提示break不存在。
作者leal的意思应该是:break语句前是四个空格,然而如果你是复制过去直接运行,由于网页编辑的某些原因会出错,请手动输入几个空格,应该可以了。
嗯,按leal上面所说的,是/sh,但我却提示错误,而改成bash后就可以了。当然我按照你所说的,空格正确输入,问题得到解决。但原因是为什么。需要四个空格?
虔诚的信徒啊!请相信KyTor吧!
http://www.wengyuanhang.com/
------------------
愿上帝赐我平静,接受我无法改变的事;
愿上帝赐我勇气,改变我能够改变的事;
愿上帝赐我智慧,能明辨这两者的差异;
brenbo
帖子: 25
注册时间: 2006-12-14 17:29
送出感谢: 0
接收感谢: 0

那个空格有问题!

#8

帖子 brenbo » 2006-12-28 9:30

你可以用鼠标选择看看,他占了两字的位置。
wellbring
帖子: 20
注册时间: 2007-01-20 15:45
送出感谢: 0
接收感谢: 0

#9

帖子 wellbring » 2007-02-08 17:17

是不是你没加分号啊?
回复

回到 “Shell脚本”