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