¿Cómo evitar que csh set elimine llaves entre comillas simples?

0

En el siguiente código, parece que {} se eliminan del interior de comillas simples cuando se usa set pero no cuando se usa alias. ¿Cómo puedo evitar que el set quite los frenos?

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo $string

Al ejecutar el script, esperaría ver:

echo ${ENVVAR}_middle_end

Pero en cambio obtengo:

echo $ENVVAR_middle_end

¿Cómo puedo evitar que csh me quite los frenos?

ercousin
fuente
Si está escribiendo guiones en cshla respuesta correcta, siempre es "no haga eso". Ver faqs.org/faqs/unix-faq/shell/csh-whynot y grymoire.com/unix/CshTop10.txt
cas

Respuestas:

1

Las llaves no están entre comillas cuando se repite la cadena, por lo que debe citar la expansión variable en el último echo:

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo "$string"

Resultado con csh:

echo ${ENVVAR}_middle_end
Kusalananda
fuente