Tutorial perintah shell printf Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari Urutan escape printf ini,
Bab terakhir kita pelajari Shell gema perintah, dalam bab ini kita belajar lain keluaran Shell perintah printf.
perintah printf meniru C library (perpustakaan) dalam prosedur printf ().
definisi standar, sehingga script penggunaan printf lebih baik daripada menggunakan portabilitas echo.
printf menggunakan teks referensi atau parameter dipisahkan oleh spasi, dapat digunakan di luar format string printf, Anda juga dapat mengembangkan lebar string, dan sebagainya perataan kiri dan kanan. printf default tidak secara otomatis menambahkan satu baris seperti echo, kita dapat menambahkan \ n manual.
printf sintaks perintah:
printf format-string [argumentsid.]
Parameter Deskripsi:
Contohnya adalah sebagai berikut:
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
Selanjutnya, saya menggunakan script untuk mencerminkan printf kuat:
#!/bin/bash # author:本教程 # url:www.w3write.com printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
Mengeksekusi script, output adalah sebagai berikut:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% c% d Format% f adalah penampung
% -10s Lihat lebar 10 karakter (- untuk kiri-blok, kanan-blok, mengatakan tidak ada), setiap karakter yang ditampilkan dalam 10 karakter karakter lebar, jika tidak cukup ruang secara otomatis diisi, maka akan lebih dari konten menampilkan semua dari mereka.
% -4.2f Mengacu pada format desimal, yang berarti 0,2 2 desimal.
contoh:
#!/bin/bash # author:本教程 # url:www.w3write.com # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出 printf %s abcdef # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf %s abc def printf "%s\n" abc def printf "%s %s %s\n" a b c d e f g h i j # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替 printf "%s and %d \n"
Mengeksekusi script, output adalah sebagai berikut:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
urutan | penjelasan |
---|---|
\ A | Peringatan karakter, biasanya ASCII karakter BEL |
\ B | mundur |
\ C | Inhibisi (tidak ditampilkan) output dalam karakter newline tertinggal (hanya berlaku dalam string parameter di bawah% b Format indikator dikontrol), dan, dalam setiap karakter yang tersisa dalam parameter, dan parameter apapun dan selanjutnya tinggal di karakter format string diabaikan |
\ F | FF (FormFeed) |
\ N | wrap |
\ R | Masukkan (Carriage pulang) |
\ T | tab horisontal |
\ V | tab vertikal |
\\ | Sebuah karakter backslash literal |
\ Ddd | Mewakili karakter 1-3 digit nilai oktal. Berlaku hanya dalam format string |
\ 0ddd | Menampilkan nilai oktal 1-3 dari karakter |
$ printf "a string, no processing:<%s>\n" "A\nB" a string, no processing:<A\nB> $ printf "a string, no processing:<%b>\n" "A\nB" a string, no processing:<A B> $ printf "www.w3write.com \a" www.w3write.com $ #不换行