ksh88 mudar aspas simples para aspas duplas dentro de heredocs?

Parece que estou enfrentando um problema específico do ksh88 que está mudando aspas simples para aspas duplas, mas apenas sob certas situações envolvendo heredocs e substituição de comandos.

Aqui está um exemplo:

#!/bin/ksh

# This example works correctly
echo "Example 1:"
cat <<EOF
The 'quick' brown fox "jumped" over the lazy dog.
EOF
echo


# This example is broken
echo "Example 2:"
var=$(cat <<EOF
The 'quick' brown fox "jumped" over the lazy dog.
EOF)
echo "${var}"
echo


# This example works correctly
echo "Example 3:"
var=`cat <<EOF
The 'quick' brown fox "jumped" over the lazy dog.
EOF`
echo "${var}"
echo

E aqui está a saída (observe como o Exemplo 2 é diferente):

Example 1:
The 'quick' brown fox "jumped" over the lazy dog.

Example 2:
The "quick" brown fox "jumped" over the lazy dog.

Example 3:
The 'quick' brown fox "jumped" over the lazy dog.

o' para" substituição parece ocorrerantes o comando é executado. No contexto real, o heredoc está passando o SQL para o Oracle. Mudando' para", seqüências de caracteres estão sendo convertidas em identificadores, quebrando assim o SQL. Isso também pode ser observado ao ativar o xtrace durante a execução do código acima.

Como posso impedir o' para" conversão no snippet de código acima sem usar backticks?

Editar: A trama engrossa. Substituindo o Comando Substituição$( ... ) com notação backtick não substitui aspas simples por aspas duplas. Então (opcional) pergunta dois: por que?

questionAnswers(1)

yourAnswerToTheQuestion