ubuntu12.04版本
以下指令碼,總是報錯
#!/bin/bash
while read line
dotesting=$(echo $line | grep -ic '')
if [ "$testing" == "1" ] ; then
#here [==] is reason
echo $line
fidone < dbinfo.xml
報錯的提示為
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 1: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
查詢原因
1.ubuntu預設的shell版本為dash,改為鳥哥小菜中的bash
2.使用=(乙個等於號)比較字串的
其實,鳥哥推薦使用==(兩個等於號)比較字串,話說乙個有賦值的意思
那麼怎麼把sh改為指向bash呢?
最暴力的方法當然是直接把/bin/sh的軟鏈結改到bash中,
如:ln -s /bin/bash /bin/sh
但是,有優雅一些的方法,
sudo dpkg-reconfigure dash
出現選單問你是否要dash的時候,選no就可以了。
再次檢查一下, ls /bin/sh -al 發現軟鏈結指向/bin/bash就可以了。
只要ls -l 一下這個檔案 ->後面就是原始位址ls -l sh
lrwxrwxrwx 1 root root 4 4月 26 16:46 sh -> bash
比較字串
其實這是在 c 從入門到精通 上摘抄的,由於不知道漢字怎麼排序,就查了查書,寫在這裡也可以幫助其他初學者更方便的找到漢字的排序方法。用於排序 int compare string str1,string str2 int compare string str1,string str2,bool ig...
字串比較
題目是這樣的 比較兩個字串,忽略大小寫,比較長度不超過n,比較順序為字典序。返回如下 0 s1 s2 0 s1 s2 0 s1 首先我們會先寫乙個函式名,我想大部分同學會寫成如下形式 int strncompare char s1,char s2,int n 是的,我開始也是這樣寫的。可是我突然覺得...
字串比較
1.publicstaticbooleanisempty string str 判斷某字串是否為空,為空的標準是 str null或 str.length 0 下面是 stringutils 判斷是否為空的示例 stringutils.isempty null true stringutils.is...