【问题标题】:Is it possible to have variable substitution in a nested heredoc?是否可以在嵌套的 heredoc 中进行变量替换?
【发布时间】:2018-10-13 13:33:03
【问题描述】:

我有一个这种结构的 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 块内进行进一步检查.但是我坚持将命令的退出代码存储到变量中并稍后访问它。这样做的任何其他方式也将有很大帮助。谢谢。

【问题讨论】:

    标签: linux bash shell nested heredoc


    【解决方案1】:

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

    echo \\\$var2
    

    它被转换(在外部heredoc中)为:

    echo \$var2
    

    最后在内部heredoc里面变成:

    echo $var2
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 1970-01-01
      • 2015-09-06
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2013-07-13
      • 2015-08-05
      相关资源
      最近更新 更多