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

作者: bluedragon (藍閣龍宿)   2014-07-16 21:14:12
版上各位高手好
小弟才疏學淺 寫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了一陣子陷入鬼打牆
請高手指點小弟迷津 感激不盡 <(__)>
作者: filiaslayers (司馬雲)   2014-07-16 21:21:00
你可以搭awk用
作者: clanguage (C語言)   2014-07-16 23:19:00
如果不是開發嵌入式不如學別的 script language..
作者: filiaslayers (司馬雲)   2014-07-17 00:58:00
shell script算是好學好用,也沒必要放棄吧
作者: carylorrk (carylorrk)   2014-07-17 06:21:00
簡單的應用 shell script 很直觀快速阿...
作者: goldie (阿良)   2014-07-17 12:15:00
你的shell是bash嗎?或著script是#!/bin/bash開頭bash有array以及更簡潔直觀的語法shell裡面都是字串吧?XD 有分整數?你declare i完後有初始成零嗎?i=0while裡面的不等於(!=)私心推薦改成小於等於(-le)遞增語法有很多種,例如let i=i+1
作者: yvb   2014-07-17 13:40:00
eval client_addr='$'"client_addr$i"i=$(expr $i + 1)根據 declare, 推測應是 bash; g大建議的 array, let 都很優.
作者: bluedragon (藍閣龍宿)   2014-07-17 19:08:00
感謝各位大大指點 已解決 感謝大家幫忙<(__)>

Links booklink

Contact Us: admin [ a t ] ucptt.com