版上各位高手好
小弟才疏学浅 写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了一阵子陷入鬼打墙
请高手指点小弟迷津 感激不尽 <(__)>
如果不是开发嵌入式不如学别的 script language..
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 都很优.
感谢各位大大指点 已解决 感谢大家帮忙<(__)>