我有一个具有嵌套值的变量。
x=hello
y=world
helloworld=monday
TEMP=$x$y
echo "${!TEMP}" # I get output "monday" which is required
这在 bash 中有效,但在普通 sh 中无效。当我使用 sh 运行相同的命令时,最后一行给出“Bad Substitution”。
如何使用 sh 获得相同的结果?由于某些原因,我无法将 shell 从 sh 更改为 bash,因此我必须使用 sh 来完成此操作。
最佳答案
因为 sh
不同于 bash
difference-between-sh-and-bash .
但是您可以使用这种方式获取 helloworld
的内容,也许有一些更好的方法,但如果您只对解决方案感兴趣,那么这将为您提供您正在寻找的东西:)
#!/bin/sh
x=hello
y=world
helloworld=monday
TEMP=$x$y
TEMP_FINAL='eval "echo \$$TEMP"'
eval "$TEMP_FINAL"
关于linux - Bourne Shell (bin/sh) 中的嵌套变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57057709/