[問題] shell script

看板Linux作者 (feynman511)時間13年前 (2012/07/12 15:33), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/3 (看更多)
這個問題應該很基本 不過我沒查到怎麼寫 假設script這樣寫 ======================= p1=123456 p2=abcdef read input for var in p1 p2 do if [ $input == $var ]; done echo ..... fi done ======================= .....的地方就是我不知道怎麼表示的地方 我是想讓當輸入input的值是p1 或是 p2 就直接顯示$p1或是$p2的值 也就是 當input = p1 就顯示 $p1 也就是 123456 當input = p2 就顯示 $p2 也就是 abcdef 如果 ..... 寫 $var 那出來的就會直接是 p1 和 p2 如果 ..... 寫 $($var) 那他會去系統裡面找有沒有叫 p1 或是 p2 的指令名稱 如果 ..... 寫 $$var 他只會顯示一串數字 所以 請問 ..... 的部份該怎麼表示? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.103.203

07/12 15:37, , 1F
你那個 in 後面應該是 $p1 $p2
07/12 15:37, 1F
感謝樓上~不過我想我沒陳述清楚我的意思 這樣說好了 如果script這樣寫 ======================= p1=123456 p2=abcdef read input echo ..... ======================= 希望 當輸入的值 (給input的值) 是p1 就顯示 $p1 也就是 123456 當輸入的值 是p2 就顯示 $p2 也就是 abcdef 要怎麼寫? 謝謝

07/12 16:25, , 2F
soga. 請google bash indirect reference
07/12 16:25, 2F

07/12 16:26, , 3F
非常感謝 b大~ 現在我知道了 應該這樣寫 ======================= p1=123456 p2=abcdef read input eval input=\$$input echo $input ======================= ※ 編輯: noonee 來自: 140.109.103.203 (07/12 16:48)

07/12 19:54, , 4F
$'$p1'
07/12 19:54, 4F
文章代碼(AID): #1F_dtAFr (Linux)
討論串 (同標題文章)
文章代碼(AID): #1F_dtAFr (Linux)