Bourne Shell中的嵌套变量(bin / sh)

时间:2019-07-16 12:51:38

标签: linux bash shell sh

我有一个带有嵌套值的变量。

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进行此操作。

1 个答案:

答案 0 :(得分:0)

shbash 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"

enter image description here