Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201634
  • 博文数量: 42
  • 博客积分: 2216
  • 博客等级: 大尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-11 19:38
文章分类

全部博文(42)

文章存档

2013年(1)

2011年(9)

2010年(23)

2009年(9)

我的朋友

分类: Python/Ruby

2011-08-31 17:53:58

by shinyguo.s@gmail.com
假如有这样的一个代码:
  1. #!/bin/sh

  2. for item in cpu mem java http
  3. do
  4.      eval ${item}_x=0.1
  5.      eval ${item}_y=0.2
  6. done
如何得到${item}_x, ${item}_y的“值”?
最笨的方法是:
  1. #!/bin/sh

  2. echo $cpu_x
  3. echo $cpu_y
  4. echo $mem_x
  5. echo $mem_y
  6. echo $java_x
  7. echo $java_y
  8. ...
但是如果item有很多很多呢?可不可以在for循环中直接打印出来?
这时,就用到了变量($item)的变量, 变量值的变量值,如下即可:
  1. #!/bin/bash

  2. for item in cpu mem java http
  3. do
  4.       eval echo \${${item}_x}
  5.       eval echo \${${item}_y}
  6. done

阅读(2149) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

GFree_Wind2011-09-01 11:58:19

学习了