看板 Linux 關於我們 聯絡資訊
版上大大大家好 小弟最近正在學習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,請問大大,是否有參數設定錯誤,導致判斷總是以後式決定呢? 還請不吝指點,萬分感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.160.90 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1471441531.A.34D.html
newgame8624: 抱歉,最後是fi, 不是if 08/17 21:47
kenduest: echo ${_game_list} ???? 08/17 22:15
kenduest: 這是說 echo ${_game_list}嗎?你程式碼多個空白 08/17 22:16
kenduest: 再來若取變數,那不應該用 ' ' 單引號包起來 08/17 22:16
kenduest: 要使用雙引號包起來才會展開變數內容 08/17 22:16
yvb: if [ -n "$(echo ..." PO")" ]; then ... 08/17 22:25
kenduest: 另外 $() 回覆想到原帖大概是需要反單引號非一般單引號 08/18 00:00
newgame8624: 是反單引號沒錯,手機排版打不出來 08/18 00:16
newgame8624: 了解,我再試試看不要用反單引號,用雙引號試試 08/18 00:17
kenduest: 應該是說若你要執行命令,要用反單引號 or $() 才可以 08/18 11:08
kenduest: 我一開始回應內容沒注意到你是需要執行外部命令 08/18 11:09
kenduest: 所以 yvb 回應比較正確 08/18 11:09