GNU/Linux >> Belajar Linux >  >> Linux

Bash printf - Cara Mencetak Variabel di Bash

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.


Linux
  1. Bagaimana Cara Mencetak Variabel Dengan Perataan Pusat Empuk?

  2. Bagaimana Cara Mencetak Baris Nomor 15 Dan 25 Dari Setiap 50 Baris?

  3. Bagaimana Mengizinkan Hanya Karakter Tertentu Dalam Variabel Bash?

  1. Bagaimana Cara Membaca String Sebagai Angka Hex Di Bash?

  2. Bash + Menggunakan Printf Untuk Mencetak Dalam Format Khusus?

  3. Bagaimana cara membandingkan dua string dalam format versi yang dipisahkan titik di Bash?

  1. Skrip bash(I)

  2. Bagaimana Cara Memeriksa Apakah Bash Dapat Mencetak Warna?

  3. Bagaimana cara menghapus variabel readonly di bash?