
Tengo un archivo llamado test
y 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, test
bá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 **