> シェルで改行を表現する普遍的(もしくはある程度一般的)な方法、というのは
> ないものでしょうか?

 それは改行コードそのものだと思います。
ただ、改行コードそのものを置けない(置きづらい)場所では、
エスケープ文字で改行を表現出来るコマンドが多いですね。色々有ります。

 GNU と bash の echo は、-e オプションで
$ echo -e 'a\nb'
a
b

 csh の echo はシェル変数 echo_style で動きが変わる模様(拡張機能かも)
$ set echo_style = sysv
$ echo 'a\nb'
a
b

 dash の echo(エスケープ文字の解釈をさせない方法は無いのでしょうか)
$ echo 'a\nb'
a
b

 sed
$ echo abc |sed 's/b/\n/'
a
c

 Perl
$ perl -we 'print "a\nb\n"'
a
b

 printf のフォーマット部
$ printf 'a\nb\n'
a
b

 printf の書式指定子 %b
$ printf '%b\n' 'a\nb'
a
b

 bash なら $'string' の形式(クォート)が使えます
$ echo $'a\nb'
a
b

-- 
_______________
    MIZUNO
mizuno@m-jy.net
_______________