문자열을 에코하려고 하면 터미널에 여러 개의 공백이 전송되지만 문자열은 그대로 필요합니다.

문자열을 에코하려고 하면 터미널에 여러 개의 공백이 전송되지만 문자열은 그대로 필요합니다.

다음을 수행해 보세요.

echo "- - 830 "FTL  MFG" -"

이는 "FTL MFG"별도의 항목으로 보관해야 합니다.

내가 뭘 잘못했나요?

답변1

echo "- - 830 "FTL  MFG" -"
     ^^^^^^^^^^        ^^^^ quoted
               ^^^^^^^^ not quoted

echo- - 830 FTL두 개의 매개변수 인 및 를 확인 MFG -하고 그 사이에 공백을 넣어 인쇄합니다. 인용된 출력을 원할 경우 이를 이스케이프하거나 작은따옴표를 사용하여 문자열을 둘러싸야 합니다.

echo "- - 830 \"FTL  MFG\" -"
echo '- - 830 "FTL  MFG" -'

답변2

큰따옴표는 "문자열 구분 기호입니다(문자열은 대부분의 프로그래밍 언어와는 다르게 셸에서 작동합니다). 비교하다:

$ for a in "- - "830 FTL MFG" -"; do echo "$a"; done
- - 830
FTL
MFG -

큰따옴표를 이스케이프 처리하거나(문자 그대로 큰따옴표로 해석되도록) '이를 사용하여 문자열을 구분해야 합니다.

%  echo "- - 830 \"FTL MFG\" -"
- - 830 "FTL MFG" -
% echo '- - 830 "FTL MFG" -'
- - 830 "FTL MFG" -

관련 정보