当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 初学shell 懵懂
帖子发表于 : 2008-04-07 16:48 

注册: 2007-10-10 15:57
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
#!/bin/sh

salutation="Hello"
echo $salutation
echo "The program $0 is now running"
echo "The second parameter was $2"
echo "The first parameter was $1"
echo "The parameter list was $*"
echo "The user's home directory is $HOME"

echo "Please enter a new greeting"
read salutation

echo $salutation
echo "The script is now complete"

exit 0
我的shell源文件如上

执行时为什么有这样的提示,执行起来也是对的啊,为什么会出现:not found 之类的语句呢? 不明白...

lucky@lucky-desktop:~/linux程序设计/chapter02$ /bin/sh try_var
: not found
Hello
The program try_var is now running
The second parameter was
The first parameter was
The parameter list was
The user's home directory is /home/lucky
: not found:
Please enter a new greeting
Sire
: bad variable namen
: not found:
Hello
The script is now complete
: not found:
exit: 17: Illegal number: 0


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-04-07 16:51 

注册: 2007-10-10 15:57
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
#!/bin/sh

yes_or_no() {
echo "Is your name $* ?"
while true
do
echo -n "Enter yes or no: "
read x
case "$x" in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo "Answer yes or no"
esac
done
}

echo "Original parameters are $*"

if yes_or_no "$1"
then
echo "Hi $1, nice name"
else
echo "Never mind"

上面的源文件编译后执行得出这样的结果的,为什么?身边没人学这个,自己单挑,真是辛苦


lucky@lucky-desktop:~/linux程序设计/chapter02$ chmod +x my_name
lucky@lucky-desktop:~/linux程序设计/chapter02$ ./my_name
bash: ./my_name:/bin/sh^M:损坏的解释器: No such file or directory
lucky@lucky-desktop:~/linux程序设计/chapter02$


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-07 16:51 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
你的shell脚本里肯定有 ^M 字符。


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-04-07 20:27 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
测试了一下第一个,没问题啊
代码:
 ./hello.sh
Hello
The program ./hello.sh is now running
The second parameter was
The first parameter was
The parameter list was
The user's home directory is /home/pjq
Please enter a new greeting
hello
hello
The script is now complete


_________________
http://pjq.me


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-04-07 20:30 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
可能是在Windows下编辑的
行结束符就有了^M


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-04-07 20:31 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
测试了第二个,在最后加上fi
再测试没问题



代码:
./hello2.sh pjq
Original parameters are pjq
Is your name pjq ?
Enter yes or no: yes
Hi pjq, nice name


_________________
http://pjq.me


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-04-08 14:01 

注册: 2007-10-10 15:57
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
yaoms 写道:
你的shell脚本里肯定有 ^M 字符。


我用GEDIT打开过后在VIM里才看到^M,怪了.把^M删掉后就一切正常了.谢谢了!


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-04-13 15:16 
头像

注册: 2005-06-19 14:22
帖子: 570
地址: 上海
送出感谢: 0 次
接收感谢: 1
dos2unix处理下


_________________
| blog | 豆瓣 | 南方linux联盟论坛 |
图片


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-08 11:07 
头像

注册: 2007-05-06 23:35
帖子: 70
送出感谢: 0 次
接收感谢: 0 次
我也出现了楼主说的第一个问题。

用gedit打开之后没看到^M,关了之后在vi里也没看到.

我是直接在Ubuntu7.04里弄得。

ps:这个是<Beginning linux programming>书上的例子吧,hehe,我也是独学.遇到问题有时候挺郁闷。

muyuyuzhong 写道:
yaoms 写道:
你的shell脚本里肯定有 ^M 字符。


我用GEDIT打开过后在VIM里才看到^M,怪了.把^M删掉后就一切正常了.谢谢了!


_________________
CPU AMD Athlon 64 X2 3600+
主板 升技AN52
内存 DDR2 667 1GB
显卡 小影霸 Nvidia GeForce 7300 GT 256M
硬盘 ST380021A 80GB
OS Ubuntu 7.04

#I believe I can fly!


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-08 11:14 
头像

注册: 2007-05-06 23:35
帖子: 70
送出感谢: 0 次
接收感谢: 0 次
刚刚找到原因了,第一行应该是
#!/bin/sh
我把它写成
#!bin/sh
了,漏了一个/
寒...


Jianying 写道:
我也出现了楼主说的第一个问题。

用gedit打开之后没看到^M,关了之后在vi里也没看到.

我是直接在Ubuntu7.04里弄得。

ps:这个是<Beginning linux programming>书上的例子吧,hehe,我也是独学.遇到问题有时候挺郁闷。

muyuyuzhong 写道:
yaoms 写道:
你的shell脚本里肯定有 ^M 字符。


我用GEDIT打开过后在VIM里才看到^M,怪了.把^M删掉后就一切正常了.谢谢了!


_________________
CPU AMD Athlon 64 X2 3600+
主板 升技AN52
内存 DDR2 667 1GB
显卡 小影霸 Nvidia GeForce 7300 GT 256M
硬盘 ST380021A 80GB
OS Ubuntu 7.04

#I believe I can fly!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译