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