免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2795 | 回复: 2
打印 上一主题 下一主题

[请教]关于变量名的嵌套问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-31 16:37 |只看该作者 |倒序浏览
有这样一个需求:
对一台主机进行N项检查,汇总检查结果(数值),并根据检查结果(数值)输出该项检查的最终结果为“正常”或“异常”
其中项目是确定的。

我是这样做的(假定有3项检查项目):

  1. CHECK_LIST="001 002 003"
  2. CHK_001_NAME="检查项目1“
  3. CHK_001_RES=0
  4. CHK_002_NAME="检查项目2“
  5. CHK_002_RES=0
  6. CHK_003_NAME="检查项目3“
  7. CHK_003_RES=0
复制代码
设定CHK_???_RES为0时检查结果正常,不为0时检查结果异常

  1. ...(省略检查步骤,在检查步骤中会对相应的CHK_???_RES赋值)
  2. # 汇总检查结果
  3. for i in ${CHECK_LIST}
  4. do
  5.         TMP_NAME=`eval "echo \\${CHK_${i}_NAME}"`
  6.         TMP_RES=`eval "echo \\${CHK_${i}_RES}"`
  7.         if [ ${TMP_RES} -eq 0 ]; then
  8.                 printf "|  %+5s_%+3s.%-37s  %-14s|\n" ${SYSNAME} ${i} ${TMP_NAME} "正常" >> ${FILENAME}
  9.         else
  10.                 printf "|  %+5s_%+3s.%-37s  %-14s|\n" ${SYSNAME} ${i} ${TMP_NAME} "异常" >> ${FILENAME}
  11.         fi
  12. done
复制代码
现在的问题是,是否所有的Xnix系统都支持eval的这种用法呢?因为目前将要使用该shell的系统还不确定,可能是AIX5.3、HPUX11.23、RHEL4、RHEL5.4等等各种版本的系统……如果兼容性存在问题,是否还有其他的兼容性好的方法来实现类似${CHK_${i}_NAME}这种的取值功能呢?

谢谢!

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2010-05-31 16:47 |只看该作者
TMP_NAME=`eval "echo \\${CHK_${i}_NAME}"`
写的太复杂,改下:

eval TMP_NAME=\${CHK_${i}_NAME}

兼容性的问题很难讲,除了看操作系统,还要看shell类型和版本。

论坛徽章:
0
3 [报告]
发表于 2010-05-31 16:49 |只看该作者
回复 2# ly5066113


哦。谢谢哈~那我明天先拿给客户那边试一下,不行再根据他们的系统客户化一下吧,呵呵……
主要我对系统和Shell的熟悉程度不够,现在需要用到,就抓瞎了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP