分页: 1 / 1

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

发表于 : 2009-08-21 12:01
dustsnow
系统版本是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系统中却执行正确.

在网上也查找不到解决方法.
有遇到相同问题的么,
先谢过了

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

发表于 : 2009-08-21 12:40
percy
注意空格:
[] 前后都需要有空格。
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0

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

发表于 : 2009-08-21 12:44
yuu1010
sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try

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

发表于 : 2009-08-21 13:04
dustsnow
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
My god..原来是这个原因.终于解决了.
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
:em01

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

发表于 : 2009-08-21 13:06
懒蜗牛Gentoo
dustsnow 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
My god..原来是这个原因.终于解决了.
我都要准备换系统了.
谢谢,非常感谢您.yuu1010
还有谢谢percy的提醒.
:em01
不至于为个shell换系统吧,直接把/bin/sh链接到bash不就好了?

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

发表于 : 2009-08-21 13:14
dustsnow
懒蜗牛Gentoo 写了:
dustsnow 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

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

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

发表于 : 2009-08-21 16:06
untitled
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

have a try
搞不懂UBUNTU干么搞了个什么dash,bash不是好好的么。汗
这个问题我几个朋友也碰到几次

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

发表于 : 2009-08-22 1:25
dustsnow
untitled 写了:
yuu1010 写了:sh是 dash的软链接,不是bash的,所以把sh改成bash,
或者直接./sh06.sh

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