0755mx 发表于 2018-8-19 14:18:41

shell中变量的间接引用

#!/bin/sh  
#
  
log_1="xxxxxx"
  
log_2="yyyyyy"
  
log_3="zzzzzz"
  
for num in {1..3}
  
do
  
    log=log_$num
  
    #此时你想把log_1,log_2,log_3,这三个变量的变量值依次的for循环中引用,但是如果你直接echo
  
    #出的变量,则只会输出你想引用的变量的变量名,而不是该变量的变量值,这里就需要用到shell
  
    #变量的间接引用了,大家可以在脚本中比较一下输出:
  
    echo $log            #输出的为变量的变量名
  
    echo ${$log}      #报错,这里报错之后就会直接退出了,主要是给大家演示一下,大家测试下面这几个echo语句的时候要提前把这条语句删除或者注释掉。
  
    echo ${!log}      #成功
  
    eval echo \$$log    #成功
  
done


页: [1]
查看完整版本: shell中变量的间接引用