Linux shell 间接变量引用(Indirect variable References)

Linux shell 间接变量引用

实例:脚本名称711.sh

#!/bin/bash

PARAMETER ()
{
        echo "$1"
}

message="parameter"
parameter="This is the first parameter."

PARAMETER "$message"
PARAMETER "${!message}"
echo
parameter="Goodbye parameter!"
PARAMETER "$message"
PARAMETER "${!message}"
exit 0

输出结果:

lishixin@lishixin:~/桌面$ bash 711.sh 
parameter
This is the first parameter.

parameter
Goodbye parameter!
lishixin@lishixin:~/桌面$ 

在这里使用的是${!}的方式来间接获得变量的间接引用的。
$message的值是“parameter”,那么经过脚本中函数的执行之后得到的输出就是parameter;
而${!message}的值是“This is the first parameter.”,同样的,经过脚本函数执行之后得到的结果是This is the first parameter.

后面的执行原理也是同样的!

在网上查阅资料可知,还有另外一直间接引用方式: expr value=\$$varname 的方式 即 expr \$$

运行实例:

lishixin@lishixin:~/桌面$ v1="v2"
lishixin@lishixin:~/桌面$ v2="hello"
lishixin@lishixin:~/桌面$ v3=${!v1}
lishixin@lishixin:~/桌面$ echo $v3
hello
lishixin@lishixin:~/桌面$ eval v4=\$$v1
lishixin@lishixin:~/桌面$ echo $v4
hello

参考链接: https://blog.csdn.net/u010720408/article/details/91392789

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值