[: 11: y: unexpected operator问题

来源:互联网 发布:网络出版物 编辑:程序博客网 时间:2024/05/15 23:53
装了个集成环境。
脚本如下:% Y8 A0 y/ u" Y4 y9 k$ K' f
#!/bin/bash
# Program:5 Q8 z" [4 q  x, Q! H4 L
#    This program shows the user's choice
# History:5 C/ X8 |' M: p. i3 N
#2005/08/25    VBird    Firstrelease8 L" l& i( \4 d0 h2 A, e% Q
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin& }. S" B. l9 X* D
export PATH  h3 Y9 ^, i6 z$ B( U* B; ]) m

read -p "Please input (Y/N): " yn
[ "$yn" == "Y" -o "$yn" == "y" ] &&echo "OK, continue" && exit0
[ "$yn" == "N" -o "$yn" == "n" ] &&echo "Oh, interrupt!" && exit0
echo "I don't know what your choice is"&& exit 0
9 u. O  D  |9 O2 ]) n
执行时总提示错误9 `7 R$ O: q' i$ }* }& P
root@dustsnow-laptop:~/scripts# sh sh06.sh: V' p6 m+ o+ s- A. T. y
Please input (Y/N): y
[: 10: y: unexpected operator
[: 11: y: unexpected operator
I don't know what your choice is

但是在虚拟机的fedora 11系统中却执行正确.! D6 h: [! w" N. B& w: D, z) o: M
+ d: I8 {2 z" Z( R0 y' O: L0 D

是这样解决的:在ubuntu中文站上得到解决的方法.( |8 H- C; i' L& k
因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了.执行时可以把sh换成bash文件名.sh来执行.成功.dash是什么东西,查了一下,应该也是一种shell,貌似用户对它的诟病颇多.3 O: q$ Z9 K5 A
by the way修改sh默认连接到bash的一种方法:
sudo dpkg-reconfigure dash0 Q$ c+ `. U+ c2 K
选择no即可.
0 0
原创粉丝点击