[問題] Shell Script如何動態擷取變數值(已解決)

看板LinuxDev作者 (藍閣龍宿)時間11年前 (2014/07/16 13:14), 編輯推噓8(807)
留言15則, 6人參與, 最新討論串1/1
版上各位高手好 小弟才疏學淺 寫shell script經驗不多 想請教一個有關shell script coding的問題 麻煩版上大大不吝賜教 目的: 一個一個擷取出不定數目的client IP address 已知: 可取得 1.目前client數目(存在變數 client_count) 2.假設目前client數目是3個 那他們會存在變數 client_addr1 client_addr2 client_addr3 5個則存在變數 client_addr1 client_addr2 client_addr3 client_addr4 client_addr5 小弟的code片段: declare -i i while [ "$i" != "$client_count" ] do client_addr="client_addr$i" #利用上面那行字串串接的變數名稱去取值存到client_addr_value config_get client_addr_value remote_telnet $client_addr i=i+1 done 問題: 由於$client_count存的是字串 請問要如何轉數字呢 小弟在裡面埋echo 發現會變成無窮loop 而且clinet_addr值永遠是client_addri=i+1 主要問題大概是 1.數字與字串的轉換比對 2.字串的串接 不好意思 這個問題可能比較初級 小弟try了一陣子陷入鬼打牆 請高手指點小弟迷津 感激不盡 <(__)> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.254.51 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1405516456.A.8AC.html

07/16 21:21, , 1F
你可以搭awk用
07/16 21:21, 1F

07/16 23:19, , 2F
如果不是開發嵌入式不如學別的 script language..
07/16 23:19, 2F

07/17 00:58, , 3F
shell script算是好學好用,也沒必要放棄吧
07/17 00:58, 3F

07/17 06:21, , 4F
簡單的應用 shell script 很直觀快速阿...
07/17 06:21, 4F

07/17 12:15, , 5F
你的shell是bash嗎?
07/17 12:15, 5F

07/17 12:16, , 6F
或著script是#!/bin/bash開頭
07/17 12:16, 6F

07/17 12:16, , 7F
bash有array以及更簡潔直觀的語法
07/17 12:16, 7F

07/17 12:18, , 8F
shell裡面都是字串吧?XD 有分整數?
07/17 12:18, 8F

07/17 12:19, , 9F
你declare i完後有初始成零嗎?i=0
07/17 12:19, 9F

07/17 12:21, , 10F
while裡面的不等於(!=)私心推薦改成小於等於(-le)
07/17 12:21, 10F

07/17 12:28, , 11F
遞增語法有很多種,例如let i=i+1
07/17 12:28, 11F

07/17 13:40, , 12F
eval client_addr='$'"client_addr$i"
07/17 13:40, 12F

07/17 13:44, , 13F
i=$(expr $i + 1)
07/17 13:44, 13F

07/17 13:53, , 14F
根據 declare, 推測應是 bash; g大建議的 array, let 都很優.
07/17 13:53, 14F

07/17 19:08, , 15F
感謝各位大大指點 已解決 感謝大家幫忙<(__)>
07/17 19:08, 15F
文章代碼(AID): #1JndgeYi (LinuxDev)
文章代碼(AID): #1JndgeYi (LinuxDev)