我有变量< code>$foo="something",我想使用:
bar="foo"; echo $($bar)
让“某事”得到回应。
公认的答案很棒。然而,@Edison问如何对数组做同样的事情。诀窍是您希望您的变量包含“@]”,这样数组就用“!”展开了。检查此函数以转储变量:
$ function dump_variables() {
for var in "$@"; do
echo "$var=${!var}"
done
}
$ STRING="Hello World"
$ ARRAY=("ab" "cd")
$ dump_variables STRING ARRAY ARRAY[@]
该输出:
STRING=Hello World
ARRAY=ab
ARRAY[@]=ab cd
当作为< code >数组给出时,第一个元素显示为这就是由< code >扩展的内容!。通过给出< code>ARRAY[@]格式,可以扩展数组及其所有值。
eval echo\“\$$bar\”
可以做到。
在bash中,您可以使用< code>${!变量}使用可变变量。
foo="something"
bar="foo"
echo "${!bar}"
# something
我有两个shell脚本: 第一个:<代码>1。sh,其内容如下: 第二:<代码>2。sh,其内容如下: 两者都具有执行权限。当我运行<代码>2时。sh,我希望环境变量PROP由1设置和导出。sh,对。这里怎么了?
我们有一个问题,我可以用这个简单的例子重现。我有以下示例shell脚本文件,名为SO shell。txt 当我运行时,我得到以下输出: 脚本执行完毕后,如果我在shell命令行执行以下命令: 我看不到任何东西(即shell变量没有被分配到shell脚本的生命周期之外) Q) 如何使shell变量超过其定义shell脚本的寿命?
测验sh包含: 我设置测试。sh至chmod 777 我用两个参数开始脚本: 然后我通过键入以下内容进行测试: 结果: 我做错了什么?
但是,bash变量不存储而是存储ip地址
我有一个简单的docker容器,它在启动时运行一个导出一些变量的脚本。 所以Dockerfile中的最后一行是 而startup.sh有 运行容器时,终端中的输出显示“test ”,正如我所料。 然而,如果我随后运行< code > docker exec-it * container id * bash 并在容器内运行< code>echo $testvar,它将为空。 环境var没有持久化吗?
第一个命令从最后一个git提交中删除第一个单词,第二个命令尝试对apiendpoint进行调用,将该变量作为调用的一部分,第三个命令只打印该变量,以确保其正常工作。请参见下面的代码 当我运行那个bash脚本时,我从服务得到一个响应,说XML中的“Item没有正确设置”,但是它确实正确地回显了正确的变量。所以我知道第一线起作用了。如果我复制curl命令并将其粘贴到bash中,用实际值替换$somet