我有一个带有嵌套值的变量。
x=hello
y=world
helloworld=monday
TEMP=$x$y
echo "${!TEMP}" # I get output "monday" which is required
这在bash中有效,但在普通sh中不起作用。当我使用sh运行同一命令时,最后一行给出“错误替换”。
如何使用sh获得相同的结果?由于某些原因,我无法将shell从sh更改为bash,因此必须使用sh进行此操作。
答案 0 :(得分:0)
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"