Pendahuluan
Bash printf
perintah adalah alat yang digunakan untuk membuat output yang diformat. Ini adalah shell built-in, mirip dengan printf()
berfungsi dalam C/C++, Java, PHP, dan bahasa pemrograman lainnya. Perintah ini memungkinkan Anda untuk mencetak teks dan variabel yang diformat dalam output standar.
Gunakan printf
dalam skrip bash untuk meningkatkan efisiensi dan penggunaan kembali saat memprogram.
Dalam tutorial ini, Anda akan belajar menggunakan printf
perintah di Linux untuk mencetak variabel dan memformat output.

Prasyarat
- Mesin yang menjalankan Linux
- Akses ke terminal (Ctrl + Alt + T )
Sintaks printf bash
printf
perintah menerima sintaks berikut:
printf [-v var] [format specifiers] [arguments]
[-v var]
Opsi -v
flag menetapkan output ke [var]
variabel alih-alih mencetaknya dalam output standar.
[format specifiers]
Penentu format adalah string yang menentukan metode penentu pemformatan. Bagian berikut mencakup daftar penentu yang diterima.
[arguments]
Argumen dapat berupa nilai atau variabel apa pun, dan [format specifiers]
arahkan ke [arguments]
. Jika ada lebih banyak argumen daripada penentu format, string format akan digunakan kembali hingga menginterpretasikan argumen terakhir.
Jika penentu format lebih sedikit daripada argumen, format angka disetel ke nol (0
), sedangkan format string disetel ke null
(kosong).
printf Specifier
Tabel berikut menunjukkan printf
common umum penentu format dan deskripsinya:
Penentu Format | Deskripsi |
---|---|
%c | Perlakukan argumen sebagai satu karakter. |
%d | Perlakukan input sebagai angka desimal (bilangan bulat) (basis 10). |
%e | Memperlakukan input sebagai bilangan floating-point eksponensial. |
%f | Perlakukan input sebagai angka floating-point. |
%i | Perlakukan input sebagai bilangan bulat (basis 10). |
%o | Memperlakukan input sebagai bilangan oktal (basis 8). |
%s | Perlakukan input sebagai string karakter. |
%u | Perlakukan input sebagai angka desimal (bilangan bulat) yang tidak ditandatangani. |
%x | Memperlakukan input sebagai bilangan heksadesimal (basis 16). |
%% | Cetak tanda persen. |
%Wd | Cetak W bilangan bulat X lebar digit. |
%(format)T | Mengeluarkan string tanggal-waktu yang dihasilkan dari penggunaan format sebagai string format untuk strftime . Argumen yang sesuai dapat berupa jumlah detik sejak Epoch (1 Januari 1970, 00:00), -1 (waktu saat ini), atau -2 (waktu startup shell). Tidak menentukan argumen menggunakan waktu saat ini sebagai nilai default. |
\% | Cetak tanda persen. |
\n | Mencetak newline karakter. |
\t | Cetak tab karakter. |
Beberapa penentu format menerima pengubah format yang mengubah tindakan mereka. Masukkan pengubah di antara %
karakter dan karakter yang menentukan format.
Pengubah format yang tersedia adalah:
<N>
. Masukkan nomor yang menentukan lebar bidang minimum. Jika teks keluaran lebih pendek, itu diisi dengan spasi. Jika teksnya lebih panjang, bidangnya akan meluas..
(titik) . Saat digunakan dengan pengubah lebar bidang, bidang tidak diperluas untuk teks yang lebih panjang. Sebaliknya, teks terpotong.-
. Rata kiri teks yang dicetak. Perataan defaultnya benar.0
. Mengisi angka dengan nol, bukan spasi.<space>
. Mengisi angka positif dengan spasi, dan angka negatif dengan minus (-
).+
. Mencetak semua nomor yang ditandatangani (+
untuk positif,-
untuk negatif).'
. Untuk konversi desimal, terapkan pemisah pengelompokan ribuan ke bagian integer dari output sesuai dengan LC_NUMERIC saat ini berkas.
Contoh Bash printf
Contoh di bawah menunjukkan kasus penggunaan umum dan berbagai cara memformat keluaran menggunakan printf
.
Meskipun perintah dapat mencetak variabel di terminal, akan lebih bermanfaat untuk menggunakannya dalam skrip bash karena memungkinkan penggunaan kembali kode dan memfasilitasi otomatisasi.
Pisahkan Output dengan Karakter Baris Baru
Tidak seperti echo
, menggunakan printf
untuk mencetak string atau variabel tanpa penentu format apa pun menghasilkan teks yang tidak diformat dalam satu baris. Untuk menambahkan karakter baris baru dan memisahkan entri, tentukan \n
penentu format:

Karakter baris baru sekarang memisahkan hasil cetak.
Mencetak Banyak Variabel
Gunakan printf
untuk mencetak beberapa variabel dalam output standar. Ikuti langkah-langkah di bawah ini:
1. Buka terminal (Ctrl + Alt + B ) dan buat skrip bash menggunakan editor teks seperti vi/vim :
vi script.sh
2. Masukkan baris berikut:
#!/bin/bash
printf "Enter your name:\n"
read name
printf "Enter your surname:\n"
read surname
printf 'Welcome: %s\n' "$name $surname"
%s
dalam format string menunjuk ke variabel yang didefinisikan pada baris sebelumnya, sedangkan \n
menginstruksikan printf
untuk menambahkan karakter baris baru.
3. Simpan skrip dan keluar dari vi
dengan memasukkan:
:wq
4. Jalankan skrip:
bash script.sh
5. Masukkan nilai yang diminta untuk kedua variabel dan periksa hasilnya:

printf
perintah menyimpan input dalam dua variabel dan kemudian mencetak variabel dalam output standar.
Variabel Cetak dalam Tabel Mock
Tambahkan padding dinamis atau ubah perataan output variabel secara otomatis menggunakan printf
. Ikuti langkah-langkah di bawah ini untuk mencetak variabel dalam tabel tiruan:
1. Buat file skrip:
vi table.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
var='hello'
printf '|%10s|\n' "$var"
%10
memastikan ada sepuluh karakter di dalam simbol pipa, mengisi output variabel dengan karakter spasi putih dengan panjang itu. s
memperlakukan variabel input sebagai string.
3. Jalankan skrip dan periksa hasilnya:
bash table.sh

Perintah mengeluarkan variabel yang terbungkus dalam simbol pipa dan menyelaraskannya ke kanan secara default. Untuk menyelaraskan output ke sisi kiri, tambahkan -
pengubah setelah %
karakter dalam format string:
#!/bin/bash
var='hello'
printf '|%-10s|\n' "$var"

Tambahkan Poin Desimal
Gunakan printf
dengan %f
penentu format untuk memperlakukan input sebagai angka titik-mengambang dan menambahkan presisi dua tempat desimal. Ikuti langkah-langkah di bawah ini:
1. Buat skrip bash:
vi precision.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
printf "Enter a decimal number:\n"
read number
printf "%5.2f\n" "$number"
3. Jalankan skrip:
bash precision.sh

Output mencetak variabel sebagai angka floating-point yang dibulatkan ke dua tempat desimal.
Menyimpan Data dalam Variabel
Gunakan -v
tandai dengan printf
untuk menetapkan variabel shell untuk menyimpan data alih-alih mencetaknya dalam output standar.
Ikuti langkah-langkah di bawah ini:
1. Buat skrip bash:
vi variable.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
printf -v var 'Welcome'
printf '%s\n' "$var"
3. Jalankan skrip:
bash variable.sh

Output mencetak konten variabel yang disimpan.
Konversi Bilangan Heksadesimal
%d
penentu format menginstruksikan printf
untuk memperlakukan input sebagai angka desimal (bilangan bulat). Gunakan penentu untuk membuat skrip yang mengubah bilangan heksadesimal menjadi desimal.
Ikuti langkah-langkah di bawah ini:
1. Buat skrip bash:
vi convert.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
printf 'Enter a hexadecimal number:\n'
read number
printf "%d\n" "$number"
3. Jalankan skrip:
bash convert.sh

Script mengonversi angka heksadesimal input menjadi desimal.
Konversi Bilangan Desimal ke Oktal
Gunakan %o
format specifier untuk mengkonversi angka desimal ke angka oktal. Ikuti langkah-langkah di bawah ini:
1. Buat skrip:
vi octal.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
printf "Enter a decimal number:\n"
read number
printf "The octal number of "$number" is %o\n" "$number"
3. Jalankan skrip:
bash octal.sh

Script mengonversi nilai desimal yang dimasukkan ke oktal.
Tanggal Cetak
Buat skrip yang menggunakan printf
untuk menampilkan tanggal saat ini. Ikuti langkah-langkah di bawah ini:
1. Buat skrip:
vi datetime.sh
2. Masukkan baris berikut dan simpan skrip:
#!/bin/bash
printf 'Today is %(%F)T\n' -1
%F
memperlakukan input sebagai angka floating-point, sedangkan -1
menunjukkan tanggal saat ini.
3. Jalankan skrip untuk memeriksa apakah itu berfungsi:
bash datetime.sh

Outputnya menyatakan tanggal dan waktu saat ini.
Tambahkan Koma ke Ribuan
Saat berurusan dengan angka, gunakan '
pengubah untuk membuat output lebih mudah dibaca dengan menambahkan koma untuk menunjukkan ribuan. Ikuti langkah-langkah di bawah ini:
1. Buat skrip bash:
vi decimals.sh
2. Masukkan baris berikut:
#!/bin/bash
printf "Enter a number:\n"
read number
printf "%'d\n" $number
3. Jalankan skrip:
bash decimals.sh

Setelah memasukkan angka, skrip menggunakan printf
untuk menambahkan koma ke nilai input secara otomatis.
Dapatkan Kode ASCII Karakter
Buat skrip yang menggunakan printf
untuk menampilkan ASCII character karakter input nilai. Ikuti langkah-langkah di bawah ini:
1. Buat skrip:
vi character.sh
2. Masukkan baris berikut lalu simpan skrip:
#!/bin/bash
printf "Enter a character to get character code:\n"
read character
printf "%d\n" "'$character"
3. Jalankan skrip dan uji apakah berhasil:
bash character.sh

Script mengeluarkan nilai ASCII karakter input.