On Mon, Aug 30, 2021, at 4:06 PM, Přemysl Šťastný wrote:
> I think, it would be nice, if you implemented Squiggly heredoc, which
> solves this problem by ignoring both leading spaces and leading tabs. eg.
>
> func()(
> cat <<~ EOF
> blabla
> EOF
> )
'<<~' is already syntactically valid.
bash-5.1$ cat <<~
heredoc> foo
heredoc> bar
heredoc> ~
foo
bar
bash-5.1$ cat <<~EOF
heredoc> foo
heredoc> bar
heredoc> ~EOF
foo
bar
bash-5.1$ echo abc >EOF; cat <<~ EOF
heredoc> foo
heredoc> bar
heredoc> ~
abc
ksh93s (I think) implemented a version of this behavior using '<<#'.
That's currently a syntax error in bash, unless interactive_comments
is disabled.
bash-5.1$ shopt -s interactive_comments
bash-5.1$ cat <<# EOF
bash: syntax error near unexpected token `newline'
bash-5.1$ shopt -u interactive_comments
bash-5.1$ echo abc >EOF; cat <<# EOF
heredoc> foo
heredoc> bar
heredoc> #
abc
--
vq