¿Cómo uso variables en cadenas entre comillas simples?

Resuelto Pectus Excavatum asked hace 10 años • 8 respuestas

¿Cómo hago eco de una variable entre comillas simples?

echo 'test text "here_is_some_test_text_$counter" "output"' >> ${FILE}
Pectus Excavatum avatar Jan 18 '14 00:01 Pectus Excavatum
Aceptado

Las variables se expanden en cadenas entre comillas dobles, pero no en cadenas entre comillas simples:

 $ name=World

 $ echo "Hello $name"
 Hello World

 $ echo 'Hello $name'
 Hello $name

Si puede simplemente cambiar las comillas, hágalo.

Si prefiere seguir con comillas simples para evitar el escape adicional, puede mezclar y combinar comillas en el mismo argumento:

 $ echo 'single quoted. '"Double quoted. "'Single quoted again.'
 single quoted. Double quoted. Single quoted again.

 $ echo '"$name" has the value '"$name"
 "$name" has the value World

Aplicado a su caso:

 echo 'test text "here_is_some_test_text_'"$counter"'" "output"' >> "$FILE"
Ignacio Vazquez-Abrams avatar Jan 17 '2014 17:01 Ignacio Vazquez-Abrams

utilizar printf:

printf 'test text "here_is_some_test_text_%s" "output"\n' "$counter" >> ${FILE}
glenn jackman avatar Jan 17 '2014 18:01 glenn jackman