Sustitución de comando: cat con contenido ejecutable

Sustitución de comando: cat con contenido ejecutable

Tengo un archivo llamado testy el contenido es:

ubuntu@regina:~$ cat test
** test **

La captura de este archivo a través de la línea de comando funciona bien, pero si uso la sustitución de comandos obtengo un resultado comprensible pero indeseable.

ubuntu@regina:~$ A=$(cat test)
ubuntu@regina:~$ echo $A
deployment detect.sh htpasswd.py logs test uwsgi-1.0.4 uwsgi-1.0.4.tar.gz test deployment        detect.sh htpasswd.py logs test uwsgi-1.0.4 uwsgi-1.0.4.tar.gz

Debido a los asteriscos que existen en el archivo, testbásicamente ejecuta echo *y enumera el contenido del directorio junto con el contenido del archivo.

¿Existe algún parámetro que pueda pasar a la sintaxis de sustitución de comandos que no proporcione este resultado, o hay otro modismo que debería usarse para esto?

Respuesta1

Quieres hacer echo "$A". Envolver la variable entre comillas la convierte en una cadena.

Ejemplo:

[root@talara test]# A=$(<test)
[root@talara test]# echo $A
FILE1 ham test test FILE1 ham test
[root@talara test]# echo "$A"
** test **

información relacionada