변수의 길이는 다음과 같습니다.
`set num=123456`
`echo $num|wc -c`
7의 출력을 반환합니다(6을 반환한다고 가정).
나도 똑같은 짓을 했어printf
`printf "%s" $num|wc -c`
반환되는 출력은 6입니다(예상대로).
계산할 때 echo
널 문자가 고려 됩니까? Printf
널 문자로 계산됩니까 ?
무엇이 그렇게 특별한가요 printf
?
답변1
가장 간단한 방법은 od -c
모든 문자 인쇄와 같은 것을 사용하는 것입니다.
$ echo 123456 | od -c
0000000 1 2 3 4 5 6 \n
0000007
$ printf 123456 | od -c
0000000 1 2 3 4 5 6
0000006
보시다시피 echo
추가 콘텐츠가 인쇄되지만 \n
인쇄 printf
되지는 않습니다. wc -c
바이트 수를 계산합니다. 문제의 문자를 사람이 볼 수 있는지 여부는 상관하지 않으며 입력의 바이트 수만 계산합니다.
printf
vs 의 특별한 점은 echo
다음을 참조하세요.여기알고 싶었던 것보다 더 자세한 내용을 알아보세요.