As citações dentro de uma string citada não importam para o shell que está dividindo o campo. Eles são como qualquer outro personagem. Portanto, quando você usa $TESTSTRING
em vez de "$TESTSTRING"
, as aspas em torno de chaise longue
e moineau
- não impedem a divisão de campo:
$ TESTSTRING='a.sh "chaise longue" b.sh "moineau"'
$ printf "%s\n" $TESTSTRING
a.sh
"chaise
longue"
b.sh
"moineau"
Se você deseja manter o desdobramento desejado, use matrizes:
$ TESTSTRING=(a.sh "chaise longue" b.sh "moineau")
$ printf "%s\n" "${TESTSTRING[@]}"
a.sh
chaise longue
b.sh
moineau