[Linux] 剛學習shell,碰到問題.執行時總出錯:unexpected operator
來源:互聯網
上載者:User
剛學習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
不知道總結的是否準確,如有錯誤,請指正轉載:http://blog.sina.com.cn/s/blog_63484d2d0100mdfn.html