假设我var在 bash 中有一个变量。我可以给它赋值。例如,我将其设为字符串:
var="Test"
Run Code Online (Sandbox Code Playgroud)
我想要的是echo的名称var,而不是var. (我可以用 做后者echo $var,但我实际上想做前者。)
SO 对这个问题的回答说要使用echo ${!var},但是当我这样做时,我 echo 只返回一个空行。例如,这个 bash 脚本
#!/bin/bash
echo "Hi"
var="Test"
echo ${!var}
echo "Bye"
Run Code Online (Sandbox Code Playgroud)
返回此输出:
Hi
Bye
Run Code Online (Sandbox Code Playgroud)
在Hi和Bye之间只有一个空行,而不是var。我究竟做错了什么?
我在Ubuntu 10.04.4上运行bash 4.1.5(1)。
mjt*_*ner 33
如果你想简单地输出一个静态变量名,你可以转义 -$符号:
echo \$var
Run Code Online (Sandbox Code Playgroud)
xae*_*xae 30
该外壳参数扩展 $ {!名字@}或$ {!名称*}可以做的伎俩,
$ foo=bar
$ var_name=(${!foo@})
$ echo $var_name" = "$foo
foo = bar
Run Code Online (Sandbox Code Playgroud)
虽然可行,但我无法想象它的效用......
| 归档时间: |
|
| 查看次数: |
103231 次 |
| 最近记录: |