문자열에서 bash 변수 뒤에 공백을 피하는 방법은 무엇입니까?

문자열에서 bash 변수 뒤에 공백을 피하는 방법은 무엇입니까?

색상 변수가 있습니다. 나는 이것을 문자열 내부에서 평가하여 문자열의 색상을 설정하는 데 사용합니다. 그러나 이름 뒤에 공백을 포함해야 합니다(이름에 텍스트의 일부가 포함되지 않도록). 가끔 안 좋아 보여요.

이 공간을 사용(인쇄)하지 않으려면 어떻게 해야 합니까?

예(예를 들어 Red=1NC=2):

echo -e "$Red Note: blabla$NC".

산출:

1 Note: blabla2.

예상 출력:

1Note: blabla2.

답변1

변수를 중괄호로 묶으세요.

echo -e "${Red}Note: blabla${NC}".

자세한 내용 보기매개변수 확장.

훌륭한 답변도 참조하세요왜 printf가 echo보다 나은가요?휴대성을 중요시한다면.

답변2

printf를 사용하는 습관을 들여야 합니다.

printf '%sNote: blabla%s\n' "$Red" "$NC"

이들 각각은 %s변수를 대체합니다. 그리고 -eprintf는 이식 가능한 방식으로 백슬래시 값 ​​\n, \t 등을 허용하기 때문에 필요하지 않습니다.

echo -e다른 쉘에는 이식할 수 없다는 점을 명심하십시오 .

다른 옵션:

두 명령을 사용하여 출력을 연결할 수 있습니다.

echo -ne "$Red"; echo -e "Note: blabla$NC"

간단한 문자열 연결을 사용할 수 있습니다.

echo -e "$Red""Note: blabla$NC"

{ }또는 다음을 사용하여 이름-텍스트 혼동을 피할 수 있습니다 .

echo -e "${Red}Note: blabla$NC"

관련 정보