제목에서 묻는 일반적인 질문에 대한 답변을 찾고있는 Google을 통해 여기에 온 모든 사람들을위한 간단한 메모 / 요약입니다. 따옴표 안의 쉘 변수에 액세스하려면 다음 중 하나가 작동해야합니다.
echo "$VARIABLE"
echo "${VARIABLE}"
작은 따옴표 사용이 주요 문제입니다. Bash Reference Manual 에 따르면 :
작은 따옴표 ( ')로 문자를 묶으면 따옴표 안에있는 각 문자의 리터럴 값이 유지됩니다. 백 슬래시가 앞에있는 경우에도 작은 따옴표 사이에 작은 따옴표를 사용할 수 없습니다. [...] 따옴표 둘러싸 자 ( ")를 제외한 시세 내의 모든 문자의 리터럴 값을 보존하고 $, `, \, 및, 기록 팽창이 활성화되면 !. 문자 $와`는 큰 따옴표로 묶인 특별한 의미를 유지합니다 (셸 확장 참조). 다음 문자 중 하나 다음에 할 때 백 슬래시는 특별한 의미를 유지 : $, `, ",\, 또는 개행. 큰 따옴표 내에서 이러한 문자 중 하나가 뒤에 오는 백 슬래시가 제거됩니다. 특별한 의미가없는 문자 앞의 백 슬래시는 수정되지 않은 상태로 남습니다. 큰 따옴표 앞에 백 슬래시를 붙여 큰 따옴표로 묶을 수 있습니다. 활성화 된 경우 !큰 따옴표로 표시된 부분이 백 슬래시를 사용하여 이스케이프 되지 않는 한 히스토리 확장이 수행됩니다 . 앞의 백 슬래시 !는 제거되지 않습니다. 특수 매개 변수 *와는 @큰 따옴표 (쉘 변수 확장 참조) 할 때 특별한 의미를 가지고있다.
질문에서 묻는 특정 경우에서 $ COLUMNS는 비표준 속성을 갖는 특수 변수입니다 (위의 lhunath의 답변 참조).