/bin/sh는 dash printf입니다. 대시에서 16진수 또는 dex 코드를 사용하여 특정 ASCII 문자를 표시하는 올바른 구문은 무엇입니까? 달러 기호($)를 인쇄하고 싶다고 가정해 보겠습니다. 어떤 16진수 또는 10진수 코드를 사용해야 하며 어떻게 사용해야 합니까?
답변1
문자 코드에서 문자 자체로 이동하려면 printf
형식 문자열에 문자 코드를 포함하고 백슬래시로 이스케이프하세요.8진수.
예를 들어 printf "\044\n"
인쇄 $
(및 개행)입니다.
Bash 및 기타 쉘에서는 16진수를 사용할 수 있지만 \x24
이는 표준이 아니며 Dash에서는 작동하지 않습니다.
그러나 printf
명령 대체 내에 다른 명령을 중첩하여 16진수 또는 10진수를 8진수로 변환할 수 있습니다. 이 두 가지 모두 인쇄 $
(및 개행)됩니다.
printf "\\$(printf %o 36)\n"
printf "\\$(printf %o 0x24)\n"