다음은 echo $var
방금 할당 된 값과 다른 값을 표시 할 수 있는 일련의 사례 입니다. 이는 할당 된 값이 "큰 따옴표", "작은 따옴표"또는 따옴표없는 여부에 관계없이 발생합니다.
셸에서 내 변수를 올바르게 설정하려면 어떻게해야합니까?
별표
예상 출력은 /* Foobar is free software */
이지만 대신 파일 이름 목록이 표시됩니다.
$ var="/* Foobar is free software */"
$ echo $var
/bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ...
대괄호
예상 값은 [a-z]
이지만 때로는 대신 단일 문자가 표시됩니다!
$ var=[a-z]
$ echo $var
c
줄 바꿈 (줄 바꿈)
예상 값은 별도의 줄 목록이지만 대신 모든 값이 한 줄에 있습니다!
$ cat file
foo
bar
baz
$ var=$(cat file)
$ echo $var
foo bar baz
여러 공간
신중하게 정렬 된 표 머리글을 예상했지만 대신 여러 공백이 사라지거나 하나로 축소됩니다!
$ var=" title | count"
$ echo $var
title | count
탭
두 개의 탭으로 구분 된 값을 예상했지만 대신 두 개의 공백으로 구분 된 값을 얻습니다!
$ var=$'key\tvalue'
$ echo $var
key value
var=$(cat file)
괜찮지 만echo "$var"
필요합니다.