|
按照鳥哥私房菜些的shell編程,但是卻出現(xiàn)莫名其妙的問題。如: #!/bin/bash#Program:# This program will show the user's choice#History:#2010/01/12 huanwgei First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -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 is you choice" && exit 0 執(zhí)行的時(shí)候,總是發(fā)現(xiàn)提示 “[: 10: y: unexpected operator” 無奈了,跑到終端下按照shell里的命令輸入了下,居然成功了,不禁再一次感嘆了下問題的詭異。最后在網(wǎng)上找到了答案: 第一種: 原文地址:http://www./read.php?tid=1377788&page=e&fpage=5 因?yàn)?/font>ubuntu默認(rèn)的sh是連接到dash的,又因?yàn)?/font>dash跟bash的不兼容所以出錯(cuò)了.執(zhí)行時(shí)可以把sh換成bash 文件名.sh來執(zhí)行.成功.dash是什么東西,查了一下,應(yīng)該也是一種shell,貌似用戶對它的詬病頗多. by the way修改sh默認(rèn)連接到bash的一種方法: $ sudo dpkg-reconfigure dash
選擇no(否)即可。 第二種: 在某個(gè)論壇看到別人討論的結(jié)果。 將”==” 改為”=”就行了,dash判斷字符串相等用 的是=。 |
|
|