쉘에 관계없이 옵션을 사용하지 않을 때 `echo`에 의해 생성된 줄바꿈이 항상 존재합니까?

쉘에 관계없이 옵션을 사용하지 않을 때 `echo`에 의해 생성된 줄바꿈이 항상 존재합니까?

읽었음에도 불구하고스티븐~의답변echo기본적으로 VS의 모든 측면 에 초점을 맞추고 있는데 printf, 이것이 내 질문에 대한 답인지는 확실하지 않습니다.

에 의해 생성된 개행 문자는 echo옵션을 사용하지 않고도 거의 모든 시스템에 항상 존재합니까? :

POSIX 스크립트가 있는데 관련 부분은 다음과 같습니다.

printf '\n'; printf '\n' >&2

printf나는 이 상황을 계속 견뎌야 하는지 스스로에게 물었습니다.

더 좋아 보일 수도 있습니다:

echo; echo >&2

하지만 저는 전문가가 아니기 때문에 잘 모르겠습니다.

답변1

에 의해 생성된 개행 문자는 echo옵션을 사용하지 않고도 거의 모든 시스템에 항상 존재합니까?

정말 항상 거기에 있는지는 모르겠어요모두시스템이지만 그게~해야 한다모든 POSIX 파생 시스템에 존재합니다. ~에 따르면사양

설명
echo유틸리티는 인수를 표준 출력에 기록하고 그 뒤에 <newline>이 옵니다. 매개변수가 없으면 <newline>만 작성됩니다.

그 다음에

구현은 어떤 옵션도 지원해서는 안 됩니다.

일부 구현에서는 몇 가지 옵션을 지원하지만 옵션이 제공되지 않으면 POSIX로 대체해야 합니다. 그렇습니다. 개행 문자를 생성해야 합니다.

이론적으로, 불순응을 두려워한다면 불순응도 echo두려워할 수도 있습니다 printf. 실제로는 printf강력한 코드를 작성하려고 할 때 어쨌든 이를 신뢰하는 것이 좋습니다. 왜냐하면 일반적으로 이것이 올바른 도구이고 일부 극단적인 경우에는 이를 버릴 필요가 없기 때문입니다("간단한 사례를 넘어" 참조).이 답변무슨 뜻인지 이해하세요).

관련 정보