명령 대체: 실행 가능한 콘텐츠가 포함된 cat

명령 대체: 실행 가능한 콘텐츠가 포함된 cat

라는 파일이 있는데 test내용은 다음과 같습니다.

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

명령줄을 통해 이 파일을 캡처하면 문제가 없지만 명령 대체를 사용하면 이해할 수는 있지만 바람직하지 않은 결과가 나타납니다.

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

test기본적으로 파일에 별표가 있기 때문에 echo *파일 내용뿐만 아니라 디렉터리 내용도 실행하고 나열합니다 .

이 결과를 제공하지 않는 명령 대체 구문에 전달할 수 있는 인수가 있습니까? 아니면 이 목적으로 사용해야 하는 또 다른 관용구가 있습니까?

답변1

당신은 무엇을하길 원합니까 echo "$A". 변수를 따옴표로 묶어 문자열로 만듭니다.

예:

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

관련 정보