別のバリエーションがあります。
printf '%s\n' 'first line here' 'second line here'
任意の数の引数を追加できます。 printf
すべての引数が使い尽くされるまで、フォーマット文字列を繰り返します。
printf '%s\n' '#!/bin/sh' \
'for x; do' \
' echo "Welcome to my script!"' \
'done' >script.sh
変数を引用するとうまくいくはずです。ただし、あなたの例では、改行が二重になっています。
printf "$text_content"