看板 Linux 關於我們 聯絡資訊
這個問題應該很基本 不過我沒查到怎麼寫 假設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
bitlife:你那個 in 後面應該是 $p1 $p2 07/12 15:37
感謝樓上~不過我想我沒陳述清楚我的意思 這樣說好了 如果script這樣寫 ======================= p1=123456 p2=abcdef read input echo ..... ======================= 希望 當輸入的值 (給input的值) 是p1 就顯示 $p1 也就是 123456 當輸入的值 是p2 就顯示 $p2 也就是 abcdef 要怎麼寫? 謝謝
bitlife:soga. 請google bash indirect reference 07/12 16:25
bitlife:or http://tldp.org/LDP/abs/html/ivr.html 07/12 16:26
非常感謝 b大~ 現在我知道了 應該這樣寫 ======================= p1=123456 p2=abcdef read input eval input=\$$input echo $input ======================= ※ 編輯: noonee 來自: 140.109.103.203 (07/12 16:48)
mshx:$'$p1' 07/12 19:54