<<
sempre inclui uma nova linha à direita (exceto por um documento vazio aqui).
Você precisa fazer o seguinte:
printf %s 'echo "bla bla"
ifcon' >> file
Ou use um comando que remova o caractere de nova linha à direita em vez de cat
:
awk '{printf "%s", l $0; l=RT}' << EOF >> file
echo "blah bla"
ifcon
EOF
(ou perl -pe'chomp if eof'
)
Ou, onde aqui-documentos são implementados com arquivos temporários ( bash
, zsh
, pdksh
, AT & T ksh
, Bourne, não mksh
, dash
nem yash
), nos sistemas GNU / Linux, você poderia fazer:
{ truncate -s-1 /dev/stdin && cat; } << EOF >> file
echo "blah bla"
ifcon
EOF