shellunixheredoc

Is nesting of Here Document possible in a unix bash script?


Is it possible to write a heredoc within another heredoc ?

ssh -T -q yxz@server1 <<-"END_TEXT"
.
.
    ssh -T -q abc@server2 <<-"SUB_TEXT"
    .
    .
    SUB_TEXT
.
.
END_TEXT

Solution

  • Yes

    However, the nested heredoc terminator will only be recognized when indented if the indentation is done with actual tabs. Spaces won't work.

    So you probably want to do something more like:

    ssh s1 << \eof1
      ssh s2 << \eof2
        hostname
    eof2
    eof1