是否可以在嵌套的 heredoc 中进行变量替换?
Is it possible to have variable substitution in a 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 块内部。但是我坚持将命令的退出代码存储到一个变量中,稍后再访问它。这样做的任何其他方式也会有很大帮助。谢谢
是的,只需添加一个反斜杠:
echo \$var2
(在外部 heredoc 内)转换为:
echo $var2
最后在里面的heredoc变成:
echo $var2
我有一个 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 块内部。但是我坚持将命令的退出代码存储到一个变量中,稍后再访问它。这样做的任何其他方式也会有很大帮助。谢谢
是的,只需添加一个反斜杠:
echo \$var2
(在外部 heredoc 内)转换为:
echo $var2
最后在里面的heredoc变成:
echo $var2