Substituição de comando: cat com conteúdo executável

Substituição de comando: cat com conteúdo executável

Eu tenho um arquivo chamado teste o conteúdo é:

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

capturar esse arquivo via linha de comando funciona bem, mas se eu usar a substituição de comando, obtenho um resultado compreensível, mas indesejável.

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

Por causa dos asteriscos que existem no arquivo, testele basicamente executa um echo *e lista o conteúdo do diretório junto com o conteúdo do arquivo.

Existe algum parâmetro que eu possa passar para a sintaxe de substituição do comando que não fornecerá esse resultado ou existe outro idioma que deva ser usado para isso?

Responder1

Você quer fazer echo "$A". Colocar a variável entre aspas a torna uma string.

Exemplo:

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

informação relacionada