내 echo 명령이 스위치(echo -n 또는 echo -e)를 허용하지 않습니다.

내 echo 명령이 스위치(echo -n 또는 echo -e)를 허용하지 않습니다.

내 스크립트에는 다음과 같은 echo 문이 있습니다.

echo -ne "Check Script";

인쇄될 것으로 예상됩니다

Check Script

하지만 다음과 같은 결과가 나타납니다.

-ne Check Script

그러나 다른 컴퓨터에서 동일한 스크립트를 실행하면 예상한 결과가 나타납니다. 스크립트가 다르게 동작하도록 하는 컴퓨터별 변수나 속성이 있을 수 있습니다.

답변1

이는 POSIX 및 UNIX의 일관된 동작입니다 echo. UNIX 일관성을 위해 다음과 echo같이 작성할 수 있습니다.

echo 'Check Script\c'

최고는아니요echo를 사용하고 대신 printf를 사용하십시오. 이는 이식성 문제가 적습니다.

printf %s 'Check Script'

POSIX에서는 이를 -n확장으로 허용합니다(그러나 지정되지 않은 동작 포함). echo -e출력을 의미하므로 -e\n이 맥락에서는 POSIX bashzsh호환되지 않습니다.

관련 정보