Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7690
  • 博文数量: 6
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-21 13:49
文章分类

全部博文(6)

文章存档

2011年(6)

我的朋友

分类: LINUX

2011-12-09 18:26:59

eval command-line 
其中command-line是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次。如:
pipe="|"
eval ls $pipe wc -l
shell第1次扫描命令行时,它替换出pipe的值|,接着eval使它再次扫描命令行,这时shell把|作为管道符号了。

 

看下面脚本

#!/bin/sh
#eval1.sh
v1="aaa"
v2="bbb"
c="1"

if [ $c -eq 1 ]
then
  vname=v$c
  eval vvv1="$"$vname

  eval vvv='$'$vname #也正确
  #vvv2=${$vname}#错误使用
  echo "vvv1=$vvv1,vvv2=$vvv2"
fi

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