eval 用法


cat file.txt 

v1 aa
v2 bb
v3 cc
v4 dd
v5 ee
v6 ff




cat eval.sh 

#!/bin/bash

while read name value
do 
eval "${name}=${value}"
done < file.txt

echo "v1 = ${v1}"
echo "v2 = ${v2}"
echo "v3 = ${v3}"
echo "v4 = ${v4}"
echo "v5 = ${v5}"
echo "v6 = ${v6}"



./eval.sh 

v1 = aa
v2 = bb
v3 = cc
v4 = dd
v5 = ee
v6 = ff


cat last.sh


#!/bin/bash

echo "$1, $2, $3, $4, $5, ..."

echo "\$$#"

eval echo "\$$#"


./last.sh aa bb cc


aa, bb, cc, , , ...
$3
cc


cat eval.sh 


#!/bin/bash

while read name value
do 
#eval "${name}=${value}"
${name}=${value}
done < file.txt

echo "v1 = ${v1}"
echo "v2 = ${v2}"
echo "v3 = ${v3}"
echo "v4 = ${v4}"
echo "v5 = ${v5}"
echo "v6 = ${v6}"




./eval.sh 

./eval.sh: line 6: v1=aa: command not found
./eval.sh: line 6: v2=bb: command not found
./eval.sh: line 6: v3=cc: command not found
./eval.sh: line 6: v4=dd: command not found
./eval.sh: line 6: v5=ee: command not found
./eval.sh: line 6: v6=ff: command not found
v1 = 
v2 = 
v3 = 
v4 = 
v5 = 
v6 = 


dell:~/tmp
> zz=ls
dell:~/tmp
> echo $zz
ls
dell:~/tmp
> $zz
eval.sh file.txt last.sh



dell:~/tmp
> yy="aa=bb"
dell:~/tmp
> echo $yy
aa=bb
dell:~/tmp
> $yy
bash: aa=bb: command not found
dell:~/tmp
> aa=bb
dell:~/tmp
> "aa=bb"
bash: aa=bb: command not found
dell:~/tmp
> "ls"
eval.sh file.txt last.sh


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值