刚学习shell,有一个脚本,执行时总出错:unexpected operator.

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
dustsnow
帖子: 10
注册时间: 2008-11-29 17:24

刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#1

帖子 dustsnow » 2009-08-21 12:01

系统版本是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系统中却执行正确.

在网上也查找不到解决方法.
有遇到相同问题的么,
先谢过了
头像
percy
帖子: 508
注册时间: 2006-09-10 8:19
系统: Gentoo/Mac OS X
来自: Shanghai,China
联系:

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#2

帖子 percy » 2009-08-21 12:40

注意空格:
[] 前后都需要有空格。
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
yuu1010
帖子: 185
注册时间: 2008-04-11 23:31

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#3

帖子 yuu1010 » 2009-08-21 12:44

sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
dustsnow
帖子: 10
注册时间: 2008-11-29 17:24

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#4

帖子 dustsnow » 2009-08-21 13:04

yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
My god..原来是这个原因.终于解决了.
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
:em01
头像
懒蜗牛Gentoo
论坛版主
帖子: 7354
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#5

帖子 懒蜗牛Gentoo » 2009-08-21 13:06

dustsnow 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
My god..原来是这个原因.终于解决了.
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
:em01
不至于为个shell换系统吧,直接把/bin/sh链接到bash不就好了?
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
dustsnow
帖子: 10
注册时间: 2008-11-29 17:24

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#6

帖子 dustsnow » 2009-08-21 13:14

懒蜗牛Gentoo 写了:
dustsnow 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
My god..原来是这个原因.终于解决了.
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
:em01
不至于为个shell换系统吧,直接把/bin/sh链接到bash不就好了?
呵呵,linux新人, :em06 在网上搜了一下,没有找到解决的方法,
也不知道问题出在这里,就萌生了这个念头.
还好现在明白怎么解决了..
头像
untitled
帖子: 611
注册时间: 2008-12-18 11:47

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#7

帖子 untitled » 2009-08-21 16:06

yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
搞不懂UBUNTU干么搞了个什么dash,bash不是好好的么。汗
这个问题我几个朋友也碰到几次
dustsnow
帖子: 10
注册时间: 2008-11-29 17:24

Re: 刚学习shell,有一个脚本,执行时总出错:unexpected operator.

#8

帖子 dustsnow » 2009-08-22 1:25

untitled 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
搞不懂UBUNTU干么搞了个什么dash,bash不是好好的么。汗
这个问题我几个朋友也碰到几次
是啊.ubuntu的这些个设置太不适合新手了,
回复