Você quer fazer echo "$A"
. Envolver a variável nas aspas faz dela 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 **
Eu tenho um arquivo chamado test
e o conteúdo é:
ubuntu@regina:~$ cat test
** test **
catting este arquivo via linha de comando funciona bem, mas se eu usar o comando de substituição, 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 test
, ele 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 de comandos que não irá fornecer este resultado, ou existe outro idioma que deve ser usado para isso?
Tags bash cat shell command-substitution