printf là gì?
Cú pháp
FORMAT có thể chứa:
- Format specifiers:
+ %s: format cho string.
+ %d: format cho integer numbers.
+ %f: format cho float numbers.
- Escape characters: \n (newline), \t (tab space)...
Xét một ví dụ đơn giản:
Để in ra ký tự newline (xuống dòng), bạn cần sử dụng escape character "\n":
Mặc định, khi sử dụng %f để format số thực, số đó sẽ được in ra 6 chữ số ở phần thập phân:
$ whatis printf
printf (1) - format and print data
$ which printfChú ý các shell thường implement hàm printf có tính năng tương tự, để nâng cao hiệu năng do thường được sử dụng thường xuyên và sẽ không cần chạy printf ở process con. Về cở bản thì chức năng giống nhau và có thể dùng lẫn. Để đảm bảo đúng bài tut này, hãy gõ đầy đủ /usr/bin/printf
/usr/bin/printf
Cú pháp
printf FORMAT ARGUMENTSprintf sẽ in ra terminal các argument đã định dạng theo với < FORMAT >. Tất cả các tham số truyền vào sau FORMAT đó đều là các ARGUMENTS.
FORMAT có thể chứa:
- Format specifiers:
+ %s: format cho string.
+ %d: format cho integer numbers.
+ %f: format cho float numbers.
- Escape characters: \n (newline), \t (tab space)...
Xét một ví dụ đơn giản:
thanhnt@Thanhnt:~$ printf 'hello world'Trong ví dụ trên, không có ký tự xuống dòng nào sau từ "world",
hello worldthanhnt@Thanhnt:~$
Để in ra ký tự newline (xuống dòng), bạn cần sử dụng escape character "\n":
thanhnt@Thanhnt:~$ printf '%s\n' 'hello world'Chú ý rằng format '%s\n' sẽ được áp dụng với tất cả các arguments.
hello world
thanhnt@Thanhnt:~$ printf '%s\n' 'hello world' 'thanhnt' 'have a nice day'Khi sử dụng nhiều format specifiers để format output, các format specifiers này sẽ format lần lượt các argument và quay vòng cho đến hết.
hello world
thanhnt
have a nice day
thanhnt@Thanhnt:~$ printf '%s\t %s\n' '20' '2 3' '43' '50'Sử dụng \b để biến đổi các ký tự đặc biêt sau dấu \ trong các argument:
20 2 3 # (20\t2 2\n)
43 50
$ /usr/bin/printf "%s\n" '1' '\t4'sử dụng %d và %f để print ra các số nguyên và các số thực.
1
\t4
$ /usr/bin/printf "%b\n" '1' '\t4'
1
4
Mặc định, khi sử dụng %f để format số thực, số đó sẽ được in ra 6 chữ số ở phần thập phân:
thanhnt@Thanhnt:~$ printf "%f\n" 1 2Tuy nhiên, có thể sử dụng '%.N' (với N là số chữ số cần hiển thị ở phần thập phân):
1.000000
2.000000
$ /usr/bin/printf "%.1f\n" 1.1234Tham khảo thêm tại:
1.1
$ /usr/bin/printf "%.5f\n" 1.1234
1.12340
man 1 printf
http://wiki.bash-hackers.org/commands/builtin/printf
No comments:
Post a Comment