字串比較問題求救 - Linux

Table of Contents

版上大大大家好
小弟最近正在學習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,請問大大,是否有參數設定錯誤,導致判斷總是以後式決定呢?

還請不吝指點,萬分感謝!


--

All Comments

Ophelia avatarOphelia2016-08-19
抱歉,最後是fi, 不是if
Andrew avatarAndrew2016-08-19
echo ${_game_list} ????
Lydia avatarLydia2016-08-20
這是說 echo ${_game_list}嗎?你程式碼多個空白
再來若取變數,那不應該用 ' ' 單引號包起來
要使用雙引號包起來才會展開變數內容
Andrew avatarAndrew2016-08-24
if [ -n "$(echo ..." PO")" ]; then ...
Todd Johnson avatarTodd Johnson2016-08-29
另外 $() 回覆想到原帖大概是需要反單引號非一般單引號
Gary avatarGary2016-09-03
是反單引號沒錯,手機排版打不出來
Oliver avatarOliver2016-09-04
了解,我再試試看不要用反單引號,用雙引號試試
Candice avatarCandice2016-09-05
應該是說若你要執行命令,要用反單引號 or $() 才可以
Zora avatarZora2016-09-08
我一開始回應內容沒注意到你是需要執行外部命令
所以 yvb 回應比較正確