shell腳本unexpected operator

剛學習shell,碰到問題.執行時總出錯:unexpected operator.

用的是ubuntu 9.04.跟這學習鳥哥的私房菜到了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系統中卻執行正確.

在網上也查找不到解決方法.
有遇到相同問題的麼,
先謝過了

已解決:在ubuntu中文論壇上得到解決的方法.
因爲ubuntu默認的sh是連接到dash的,又因爲dash跟bash的不兼容所以出錯了.執行時可以把sh換成bash 文件名.sh來執行.成功.dash是什麼東西,查了一下,應該也是一種shell,貌似用戶對它的詬病頗多.
by the way修改sh默認連接到bash的一種方法:
sudo dpkg-reconfigure dash
選擇no即可.
參考:http://hi.baidu.com/nako521/blog/item/248fee953b52454fd1135eb7.html
不知道總結的是否準確,如有錯誤,請指正

發佈了37 篇原創文章 · 獲贊 24 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章