Re: [問題] 判斷文字檔是否出現 "i=0" 字串
※ 引述《mself (mself)》之銘言:
: dear 各位
:
: 我想寫 bash shell 判斷文字檔是否包含 "i=0" 這個字串
: 我用 result=`grep "i=0" text.txt`
: 再判斷 if [$result==""]
:
: 因為$result裡包含 "="
: 我這樣寫會有問題
:
: 請問怎麼做比較對呢?
: 謝謝
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 203.73.9.202
: → HamalAri:我用 $result == "" 沒有問題啊?? 08/16 23:39
: 推 guessi: grep -q "i=0" input && RET=0 || RET=1 ; 08/16 23:41
: → guessi: if test RET = 0 ; then ...; else ...; fi 08/16 23:41
: → guessi: echo $SHELL; 確認一下你是否在使用bash 你原本的應該也ok 08/16 23:44
: → firejox:if [ "$result" == "" ] ? 08/16 23:48
test 文字檔裡寫了一行:
i=0
要執行的 script
#!/bin/bash
echo $SHELL
echo '--------'
grep -q "i=0" test && echo 'i=0 found'
grep -q "i=0" test || echo 'i=0 not found'
grep -q "k=0" test && echo 'k=0 found'
grep -q "k=0" test || echo 'k=0 not found'
echo '---------'
result=`grep "i=0" test`
echo $result
if [$result!=""];then
echo 'i=0 found'
else
echo 'i=0 not found'
fi
執行結果:
/bin/bash
--------
i=0 found
k=0 not found
---------
i=0
./testgrep: line 15: [i=0!=]: command not found
i=0 not found
guessi 版友建議的 grep -q 的方法 work
但直接用 if 判斷 grep 出來的字串,好像字串會被展開成指令
就會有錯
用"" 把變數刮起來也是有一樣的錯誤
不曉得什麼情況變數會被展開成指令?什麼情況不會呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.8.76
推
08/17 22:07, , 1F
08/17 22:07, 1F
→
08/17 22:07, , 2F
08/17 22:07, 2F
→
08/17 22:08, , 3F
08/17 22:08, 3F
→
08/17 22:09, , 4F
08/17 22:09, 4F
→
08/17 22:10, , 5F
08/17 22:10, 5F
→
08/17 23:01, , 6F
08/17 23:01, 6F
推
08/18 01:26, , 7F
08/18 01:26, 7F
→
08/18 01:27, , 8F
08/18 01:27, 8F
→
08/18 08:01, , 9F
08/18 08:01, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):