| HOME / 정보공유 / AIX 명령어 모음

printf
printf printf 명령 목적 포맷된 출력을 기록합니다. 구문
printf Format [ Argument ... ]
설명
printf 명령은 Argument 매개변수를 표준 출력으로 변환하고 포맷한 후 기록합니다. Argument 매개변수는 Format 매개변수 제어하에서 포맷됩니다. 포맷된 출력 행의 길이는 LINE_MAX 바이트를 초과할 수 없습니다.
다음과 같은 환경 변수가 printf 명령의 실행에 영향을 줍니다.
LANG LC_ALL 및 해당 환경 변수(LC_로 시작함)가 로케일을 지정하지 않은 경우, 로케일 범주로 사용할 로케일을 결정합니다.
LC_ALL LANG 또는 기타 LC_ 환경 변수의 설정으로 지정한 로케일 범주의 값을 대체하는 데 사용될 로케일을 결정합니다.
LC_CTYPE 매개변수에서 단일 바이트 대 멀티 바이트 문자와 같은 문자 텍스트 데이터의 일련의 바이트들을 해석하기 위한 로케일을 결정합니다.
LC_MESSAGES 메세지를 작성할 언어를 결정합니다.
LC_NUMERIC 수치 포맷팅을 위한 로케일을 결정합니다. 이 환경 변수는 e, E, f, g 및 G 변환 문자를 사용하여 쓰여지는 숫자의 형식에 영향을 줍니다.
Format 매개변수는 오브젝트의 세 가지 유형을 포함하는 문자열입니다.
일반 문자는 출력 스트림에 복사됩니다.
변환 스펙. 각각의 변환 스펙은 값 매개변수 리스트에서 0개 이상의 항목이 검색될 수 있게 합니다.
다음과 같은 escape 문자. 출력 스트림으로 복사되는 경우, 이 일련의 문자들로 인해 관련 조치는 그 조치를 수행할 수 있는 장치에 표시됩니다.
\\ 백슬래쉬
\a 경고
\b 백스페이스
\f 용지 공급
\n 개행
\r 캐리지 리턴
\t 탭
\v 수직 탭
\ddd 이 때, ddd는 한자리, 두 자리, 또는 세 자리 8진수입니다. 이 에스케이프 문자열은 8진수로 지정된 숫자 값 바이트로서 표시됩니다.
Argument 매개변수는 Format 매개변수의 제어를 받으면서 표준 출력에 쓰여질 하나 이상의 문자열 리스트입니다.
Format 매개변수는 Argument 매개변수를 충족시키는 데 필요한 횟수만큼 사용됩니다. 추가 c 또는 s 변환 스펙은 널 문자열인 Argument가 제공되는 것처럼 평가됩니다. 기타 추가 변환 스펙은 0 Argument가 제공되는 것처럼 평가됩니다. Format 매개변수에 변환 스펙이 없고 Argument 매개변수가 있는 경우, 결과는 지정되지 않습니다.
Format 매개변수의 각 변환 스펙은 이 순서로 다음과 같은 구문을 갖습니다.
%(퍼센트 부호)
0개 이상의 옵션. 각 옵션은 변환 스펙의 의미를 수정합니다. 옵션 문자와 그 의미는 다음과 같습니다.
- 변환 결과는 필드 내에서 왼쪽 정렬입니다.
+ 부호지정 변환의 결과는 항상 부호(+ 또는 -)로 시작합니다.
blank 부호지정 변환의 최초 문자가 부호가 아닌 경우, 결과의 앞에 공백이 옵니다. 공백과 + 옵션 문자가 모두 나타나는 경우, 공백 옵션 문자는 무시됩니다.
# 이 옵션은 값이 대체 양식으로 변환되도록 지정합니다. c, d, i, u 및 s 변환인 경우에는 옵션이 유효하지 않습니다. o 변환인 경우, 정밀도를 결과의 첫 자리가 a, 0이 되도록 증가시킵니다. x 및 X 변환인 경우, 영(0)이 아닌 결과의 앞에는 0x 또는 0X가 각각 표시됩니다. e, E, f, g 및 G 변환인 경우에는 기수 문자 다음에 숫자가 오지 않더라도 항상 기수 문자가 결과에 포함됩니다. g 및 G 변환인 경우, 후미 0은 대개 이들이 포함된 결과에서 제거되지 않습니다.
0 d, i, o, u, x, e, E, f, g 및 G 변환인 경우, 부호나 베이스 다음에 오는 선행 0이 필드 폭을 채우는 데 사용되며 공백 채움은 수행되지 않습니다0과 -(빼기 기호) 옵션이 표시되면, 0 옵션은 무시됩니다. d, i, o, u, x 및 X 변환인 경우, 정밀도가 지정되어 있으면 0 옵션이 무시됩니다.
다른 변환의 경우, 활동이 정의되지 않습니다.
최소 필드 폭을 지정하는 선택적 십진수 문자열. 변환된 값이 필드 폭보다 더 적은 문자를 갖는 경우, 필드는 필드 폭으로 지정된 길이의 왼쪽에 채워집니다. 왼쪽 조정 옵션이 지정되면, 필드는 오른쪽 방향으로 채워집니다. 변환의 결과가 필드 폭보다 넓은 경우, 필드는 변환된 결과를 포함하기 위해 확장됩니다. 절단은 발생하지 않습니다. 그러나 작은 정밀도로 인해 오른쪽이 절단될 수도 있습니다.
선택적 정밀도. 정밀도는 .(점)이 오고 그 다음에 십진수 문자열이 옵니다. 정밀도가 주어지지 않으면, 정밀도는 0으로 취급됩니다. 정밀도는 다음을 지정합니다.
d, o, i, u, x 또는 X 변환에 대해 나타날 숫자의 최소 수.
e 및 f 변환에 대해 기수 문자 다음에 나타날 숫자의 수.
g 변환에 대해 중요한 숫자의 최대 수.
s 변환에 있는 문자열로부터 인쇄될 바이트의 최대 수.
적용될 변환 유형을 나타내는 다음과 같은 문자
% 변환을 수행하지 않습니다. %(퍼센트 부호)를 인쇄합니다.
d, i 정수 값을 승인하고, 그 값을 부호지정 10진수 표시법으로 변환합니다. 정밀도는 나타내려는 숫자의 최소값을 지정합니다. 변환될 값을 더 적은 숫자로 표현할 수 있는 경우, 그 값은 선행하는 0으로 확장됩니다. 디폴트 정밀도는 1입니다. 0의 값을 0의 정밀도로 변환한 결과는 널(null) 문자열입니다. 필드 폭을 선행 문자열로서 0으로 채우도록 지정하면, 필드 폭 값이 선행 0으로 채워집니다.
o 정수 값을 승인하고, 그 값을 부호지정 8진수 표시법으로 변환합니다. 정밀도는 나타내려는 숫자의 최소값을 지정합니다. 변환될 값을 더 적은 숫자로 표현할 수 있는 경우, 그 값은 선행하는 0으로 확장됩니다. 디폴트 정밀도는 1입니다. 0의 값을 0의 정밀도로 변환한 결과는 널(null) 문자열입니다. 필드 폭을 선행 문자열로서 0으로 채우도록 지정하면, 필드 폭 값이 선행 0으로 채워집니다. 필드 폭에 대한 8진수 값은 포함되지 않습니다.
u 정수 값을 승인하고, 그 값을 부호지정 10진수 표시법으로 변환합니다. 정밀도는 나타내려는 숫자의 최소값을 지정합니다. 변환될 값을 더 적은 숫자로 표현할 수 있는 경우, 그 값은 선행하는 0으로 확장됩니다. 디폴트 정밀도는 1입니다. 0의 값을 0의 정밀도로 변환한 결과는 널(null) 문자열입니다. 필드 폭을 선행 문자열로서 0으로 채우도록 지정하면, 필드 폭 값이 선행 0으로 채워집니다.
x, X 정수 값을 승인하고, 그 값을 16진수 표시법으로 변환합니다. abcdef 문자는 x 변환에 사용되며, ABCDEF 문자는 X 변환에 사용됩니다. 정밀도는 나타내려는 숫자의 최소값을 지정합니다. 변환될 값을 더 적은 숫자로 표현할 수 있는 경우, 그 값은 선행하는 0으로 확장됩니다. 디폴트 정밀도는 1입니다. 0의 값을 0의 정밀도로 변환한 결과는 널(null) 문자열입니다. 필드 폭을 선행 문자열로서 0으로 채우도록 지정하면, 필드 폭 값이 선행 0으로 채워집니다.
f float 또는 double 값을 승인하고 이를 [-] ddd.ddd 형식에서 십진 표기법으로 변환합니다. radix 문자 다음의 자릿수(여기에서는 소수점으로 표시된)는 정밀도 스펙과 동일합니다. LC_NUMERIC 로케일 카테고리는 이 형식에 사용할 radix 문자를 판별합니다. 정밀도가 지정되지 않은 경우, 6자리가 출력입니다. 정밀도가 0이면, radix 문자가 표시되지 않습니다.
e, E float 또는 double 값을 승인하고 이를 지수 형식 [-] d.dde{+|-}dd으로 변환합니다. radix 문자 전에 한자리(여기에서는 소수점으로 표시된)가 있으며, radix 문자 다음의 자릿수는 정밀도 스펙과 동일합니다. LC_NUMERIC 로케일 카테고리는 이 형식에 사용할 radix 문자를 판별합니다. 정밀도가 지정되지 않은 경우, 6자리가 출력입니다. 정밀도가 0이면, radix 문자가 표시되지 않습니다. E 변환 문자는 지수 앞의 e 대신에 E로 숫자를 작성합니다. 지수에는 최소한 두 자리가 항상 들어 있습니다. 그러나 인쇄될 값의 지수가 2자리보다 커야하는 경우, 필요에 따라 추가 지수 자릿수가 인쇄됩니다.
g, G float 또는 double 값을 승인하고 이를 정밀도에 유효 자릿수가 지정된 f 또는 e 변환 문자의 스타일(또는 G 변환의 경우 E)로 변환합니다후미 0은 결과치에서 제거됩니다. radix 문자는 그 다음에 숫자가 오는 경우에만 표시됩니다. 사용된 스타일은 변환된 값에 따라 다릅니다. 변환의 결과인 지수가 -4보다 작거나 정밀도보다 크거나 같은 경우에만 스타일이 g입니다.
c 문자열로서 값을 승인하고, 문자열에서 최초 문자를 인쇄합니다.
s 문자열로서 값을 승인하고, 문자열의 끝을 만나거나, 정밀도로 지시된 문자 수에 도달할 때까지 문자열에서 문자를 인쇄합니다. 정밀도가 지정되지 않은 경우에는 최초 널(null) 문자까지 모든 문자를 인쇄합니다.
b 백슬래쉬 에스케이프 문자열을 포함할 수 있는 문자열로서 값을 승인합니다. 변환된 문자열의 바이트는 문자열의 끝, 또는 정밀도 스펙으로 지시된 바이트의 수에 도달할 때까지 인쇄됩니다. 정밀도가 생략되는 경우, 모든 바이트는 최초 널(null) 문자까지 인쇄됩니다.
다음과 같은 백슬래쉬 에스케이프 문자열이 지원됩니다.
Format 매개변수에 대한 설명 아래에 이미 나열된 escape 문자열. 이 문자열은 개별적인 문자들로 변환됩니다.
printf 명령으로 하여금 \c(백슬래쉬 c) 문자열을 포함하는 문자열 매개변수의 나머지 문자, 나머지 문자열 매개변수 그리고 Format 매개변수에 있는 추가 문자를 무시하게 하는 \c 문자열. 이 문자열은 표시되지 않습니다.
종료 상태
이 명령은 다음의 값을 리턴합니다.
0 성공적으로 완료되었습니다.
>0 오류가 발생했습니다.
예제
다음과 같은 명령을 입력하십시오.
printf "%5d%4d\n" 1 21 321 4321 54321
그러면 다음과 같은 출력이 작성됩니다.
1 21
3214321
54321 0
Format 매개변수는 주어진 모든 문자열을 인쇄하기 위해 세 번 사용됩니다. 0은 printf 명령을 통해 제공되어 %4d 변환 스펙을 충족시킵니다.
다음과 같은 명령을 입력하십시오.
printf "%c %c" 78 79
그러면 다음과 같은 출력이 작성됩니다.
7 7
파일
/usr/bin/printf printf 명령을 포함합니다.
관련 정보
/usr/bin/echo 명령