[問題] 字串比較問題求救

作者: newgame8624 (柯特)   2016-08-17 21:45:28
版上大大大家好
小弟最近正在學習Linux中,但遇到了一個數值比對問題無法解決,懇請版上大大指點迷

game()

if [ -n 'echo ${_game_list} | grep -i " PO"' ]; then _game_id =POKEMON
if
if [ -n 'echo ${_game_list} | grep -i " HG"' ]; then _game_id =HGAME
if

我在_game_list 中,輸入的是GOODPOK,原本預設會出來是POKEMON,但結果是HGAME。
但如果把
if [ -n 'echo ${_game_list} | grep -i " HG"' ]; then _game_id =HGAME
if
去掉,值就是POKEMON,請問大大,是否有參數設定錯誤,導致判斷總是以後式決定呢?
還請不吝指點,萬分感謝!
作者: newgame8624 (柯特)   2016-08-17 21:47:00
抱歉,最後是fi, 不是if
作者: kenduest (小州)   2016-08-17 22:15:00
echo ${_game_list} ????這是說 echo ${_game_list}嗎?你程式碼多個空白再來若取變數,那不應該用 ' ' 單引號包起來要使用雙引號包起來才會展開變數內容
作者: yvb   2016-08-17 22:25:00
if [ -n "$(echo ..." PO")" ]; then ...
作者: kenduest (小州)   2016-08-18 00:00:00
另外 $() 回覆想到原帖大概是需要反單引號非一般單引號
作者: newgame8624 (柯特)   2016-08-18 00:16:00
是反單引號沒錯,手機排版打不出來了解,我再試試看不要用反單引號,用雙引號試試
作者: kenduest (小州)   2016-08-18 11:08:00
應該是說若你要執行命令,要用反單引號 or $() 才可以我一開始回應內容沒注意到你是需要執行外部命令所以 yvb 回應比較正確

Links booklink

Contact Us: admin [ a t ] ucptt.com