系统版本是ubuntu 9.04 desktop.跟着学习鸟哥的私房菜到了shell script那一节,
脚本如下:
#!/bin/bash
# Program:
# This program shows the user's choice
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input (Y/N): " yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh, interrupt!" && exit 0
echo "I don't know what your choice is" && exit 0
执行时总提示错误
root@dustsnow-laptop:~/scripts# sh sh06.sh
Please input (Y/N): y
[: 10: y: unexpected operator
[: 11: y: unexpected operator
I don't know what your choice is
但是在虚拟机的fedora 11系统中却执行正确.
在网上也查找不到解决方法.
有遇到相同问题的么,
先谢过了
刚学习shell,有一个脚本,执行时总出错:unexpected operator.
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 10
- 注册时间: 2008-11-29 17:24
- percy
- 帖子: 508
- 注册时间: 2006-09-10 8:19
- 系统: Gentoo/Mac OS X
- 来自: Shanghai,China
- 联系:
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
注意空格:
[] 前后都需要有空格。
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
[] 前后都需要有空格。
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
-
- 帖子: 185
- 注册时间: 2008-04-11 23:31
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
或者直接./sh06.sh
have a try
-
- 帖子: 10
- 注册时间: 2008-11-29 17:24
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
My god..原来是这个原因.终于解决了.yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7354
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
不至于为个shell换系统吧,直接把/bin/sh链接到bash不就好了?dustsnow 写了:My god..原来是这个原因.终于解决了.yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
-
- 帖子: 10
- 注册时间: 2008-11-29 17:24
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
呵呵,linux新人, 在网上搜了一下,没有找到解决的方法,懒蜗牛Gentoo 写了:不至于为个shell换系统吧,直接把/bin/sh链接到bash不就好了?dustsnow 写了:My god..原来是这个原因.终于解决了.yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
也不知道问题出在这里,就萌生了这个念头.
还好现在明白怎么解决了..
- untitled
- 帖子: 611
- 注册时间: 2008-12-18 11:47
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
搞不懂UBUNTU干么搞了个什么dash,bash不是好好的么。汗yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
这个问题我几个朋友也碰到几次
-
- 帖子: 10
- 注册时间: 2008-11-29 17:24
Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.
是啊.ubuntu的这些个设置太不适合新手了,untitled 写了:搞不懂UBUNTU干么搞了个什么dash,bash不是好好的么。汗yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh
have a try
这个问题我几个朋友也碰到几次