是否有可能在嵌套的heredoc中进行变量替换?

时间:2018-05-03 09:31:28

标签: linux bash shell nested heredoc

我有一个这种结构的bash脚本:

ssh user1@host <<EOF1
    var1="abc"
    echo \$var1

    su user2 <<EOF2
        var2="xyz"
        #echo var2 (how?)
        ..do something..
EOF2
EOF1  

现在我能够定义和访问外部heredoc EOF1中的变量,如图所示。是否有可能在内部heredoc EOF2内做同样的事情?

这是我在脚本中执行的操作:我在EOF2中以不同的用户身份执行命令,获取该命令的退出代码并将其存储在变量中,以便在EOF2块内进一步检查。但是我坚持将命令的退出代码存储到变量中并稍后访问它。任何其他方式这样做也会有很大帮助。感谢。

1 个答案:

答案 0 :(得分:1)

是的,只需添加一个反斜杠:

echo \\\$var2

将(在外部heredoc内)转换为:

echo \$var2

最后在内部heredoc里面进入:

echo $var2