Antes de qualquer coisa, não tenho orgulho do que fiz hahaha
Não sou programador, mas vira e mexe faço alguma coisa em shell script e coloco num apache pra consultar informacoes.
Aí pra evitar ficar escapando barra, aspas, etc nos echo "<html">, fiz isso aqui e o resultado foi bem mais q satisfatório pro meu uso minusculo
Acho até q o conceito pode ser melhor explorado, por isso tô postando na lista, só pra servir de inspiração:
html(){
[ "$2" == "abre" ] && echo "<$1>$3"
[ "$2" == "fecha" ] && echo "</$1>"
[ "$2" == "contem" ] && echo "<$1>$3</${1// */}>"
}
$ html html contem "$(html table contem "$(html tr contem "$(html "td class='cssaqui'" contem "teste de tabela html")")")"
<html><table><tr><td class='cssaqui'>teste de tabela html</td></tr></table></html>
se preferir uma construção mais limpa, é só fazer aos poucos
html html abre
html body abre
html table abre
html tr abre
html "td class='css aqui'" contem teste de tabela html
html tr fecha
html table fecha
html body fecha
html html fecha