echo는 printf의 별칭이어야 합니까?

echo는 printf의 별칭이어야 합니까?

나는 터미널에 대해 잘 알지 못하지만 내가 알고 읽은 몇 가지 사항을 통해 printf가 echo보다 더 강력하고 편안하지만 유사한(동일하지는 않더라도) 목적으로 사용될 수 있다고 믿게 되었습니다. 그래서 나는 스스로에게 물었습니다. echo와 관련된 모든 문제를 잊을 수 있도록 printf에 echo의 별칭을 지정하는 것이 현명할까요? 아니면 이식성 등 내가 볼 수 없는 것이 있는 걸까요?

필요한 경우 시스템은 Windows 10에서 WSL2를 실행하는 Ubuntu 20.04입니다.

답변1

아니요, 그렇게 하는 것은 현명하지 못할 것입니다.

printf매우 다르게 작동하므로 echo습관을 바꾸고 printf가능하면 사용해야 합니다(항상, 그러나 더 복잡하고 더 많은 생각이 필요한 간단한 작업의 경우) 및/또는유용하다/필요하다(변수, 반복, 특수 문자, 숫자 형식 등의 경우)


간단한 예를 들어보세요:

$ echo "100%"
100%

$ printf "100%"
bash: printf: `%': missing format character

다른 예시:

$ echo "Hello" "World"
Hello World

$ printf "Hello" "World"
Hello

또한 printf다음에는 개행 문자가 없습니다 Hello.

이는 첫 번째 매개변수가 문자열 printf이기 때문입니다.FORMAT

printf FORMAT [ARGUMENT]...

당신은 또한 볼 수 있습니다 man printf.

관련 정보