Bash, 내보내기, 간단한 명령 연결을 위한 "-n"은 "-n"을 제거합니다.

Bash, 내보내기, 간단한 명령 연결을 위한 "-n"은 "-n"을 제거합니다.

나는 이에 대한 답을 찾지 못했고 분명할 것 같지만 여전히 도움이 필요합니다.

명령줄 옵션을 만들려고 할 때 다양한 플래그를 사용하고 이를 에코하여 올바른지 확인했습니다.

그러나 이 예제는 여전히 실패합니다.

declare foo="-n 40 "
echo $foo

실행하면 "40"만 표시됩니다.

앞에 대시를 추가하면-n, 인쇄--n백슬래시/이스케이프? 이것을 인쇄합니다. 요컨대, 나는 이 간단한 텍스트를 올바르게 표시하기 위해 도대체 무슨 일이 일어나고 있는지 이해하지 못합니다. 사용해보기도 했는데요--(처리 중지)는 도움이 되지 않습니다.

가능하다면 문서의 어느 부분을 지적하고 이것이 왜 설명되는지 설명해주세요.-n그래야 앞으로는 하지 말아야 할 일을 배우고 고칠 수 있어요.

감사해요.

답변1

bash echo내장 함수는 -n인수를 그 자체로 해석합니다( help echo또는 에 설명된 대로 man bash).

-n 줄바꿈이 추가되지 않았습니다.

일부 다른 echo구현도 동일한 작업을 수행합니다.

대신 사용하십시오 printf.

printf '%s\n' "$foo"

관련 정보