作者bluedragon (蓝阁龙宿)
看板LinuxDev
标题[问题] Shell Script如何动态撷取变数值
时间Wed Jul 16 21:14:12 2014
版上各位高手好
小弟才疏学浅 写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://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1405516456.A.8AC.html
1F:推 filiaslayers:你可以搭awk用 07/16 21:21
2F:推 clanguage:如果不是开发嵌入式不如学别的 script language.. 07/16 23:19
3F:→ filiaslayers:shell script算是好学好用,也没必要放弃吧 07/17 00:58
4F:→ carylorrk:简单的应用 shell script 很直观快速阿... 07/17 06:21
5F:推 goldie:你的shell是bash吗? 07/17 12:15
6F:→ goldie:或着script是#!/bin/bash开头 07/17 12:16
7F:→ goldie:bash有array以及更简洁直观的语法 07/17 12:16
8F:推 goldie:shell里面都是字串吧?XD 有分整数? 07/17 12:18
9F:→ goldie:你declare i完後有初始成零吗?i=0 07/17 12:19
10F:推 goldie:while里面的不等於(!=)私心推荐改成小於等於(-le) 07/17 12:21
11F:推 goldie:递增语法有很多种,例如let i=i+1 07/17 12:28
12F:推 yvb:eval client_addr='$'"client_addr$i" 07/17 13:40
13F:→ yvb:i=$(expr $i + 1) 07/17 13:44
14F:推 yvb:根据 declare, 推测应是 bash; g大建议的 array, let 都很优. 07/17 13:53
15F:→ bluedragon:感谢各位大大指点 已解决 感谢大家帮忙<(__)> 07/17 19:08