Experimente os dois comandos seguintes e veja o que obtém:
echo "$(printf 'a')"
echo '$(printf 'a')'
Essencialmente, as aspas simples fornecem a sua "string original", enquanto que qualquer valor entre aspas duplas será avaliado antes de ser atribuído ao seu alias.
No entanto, você pode notar que as aspas simples em torno de 'a' estão faltando na saída do segundo comando. Você terá que seguir e rastrear suas citações cuidadosamente para evitar a queda de cotações - da mesma forma que você teve que usar \"
para suas aspas duplas internas, exceto que você não pode fazer isso entre aspas simples. Você teria que usar algo como '\''
.
Por esse motivo, recomendo usar uma função em vez de um alias, para que você não precise se preocupar em proteger suas cotações. Isso também permite que você forneça um nome de arquivo na linha de comando, enquanto seu alias só funciona se você enviar algo para ele.
catvu () {
LC_ALL=C sed "$(printf 's/[^\t -60-7]/^&/g')" "$@" | LC_ALL=C tr 'echo "$(printf 'a')"
echo '$(printf 'a')'
--7' '@-HK-_?'
}