我有一个这种结构的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块内进一步检查。但是我坚持将命令的退出代码存储到变量中并稍后访问它。任何其他方式这样做也会有很大帮助。感谢。
答案 0 :(得分:1)
是的,只需添加一个反斜杠:
echo \\\$var2
将(在外部heredoc内)转换为:
echo \$var2
最后在内部heredoc里面进入:
echo $var2