GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mencetak Variabel Dengan Perataan Pusat Empuk?

Bagaimana saya bisa mencetak $myvar empuk sehingga berada di tengah terminal, dan di kedua sisinya adalah = ke tepi layar?

Jawaban yang Diterima:

Saya menemukan dua informasi di sini di jaringan stackexchange yang membantu saya sampai pada jawaban yang berfungsi ini:

  • https://stackoverflow.com/q/263890/5419599
  • https://stackoverflow.com/q/4409399/5419599

Namun kode dalam jawaban ini adalah milik saya.

Lihat riwayat edit jika Anda ingin lebih banyak verbositas; Saya telah mengedit semua cruft dan “langkah-langkah di sepanjang jalan”.

Saya pikir cara terbaik adalah:

center() {
  termwidth="$(tput cols)"
  padding="$(printf '%0.1s' ={1..500})"
  printf '%*.*s %s %*.*sn' 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "Something I want to print"

Keluaran pada terminal dengan lebar 80 kolom:

========================== Something I want to print ===========================

Perhatikan bahwa padding tidak harus berupa karakter tunggal; sebenarnya padding variabel tidak, panjangnya 500 karakter dalam kode di atas. Anda dapat menggunakan beberapa bentuk padding lain dengan hanya mengubah padding baris:

padding="$(printf '%0.2s' ^v{1..500})"

Hasil dalam:

^v^v^v^v^v^v^v^v^v^v^v^v^v Something I want to print ^v^v^v^v^v^v^v^v^v^v^v^v^v^

Penggunaan praktis lainnya adalah:

clear && center "This is my header"

Linux
  1. Cara mencetak pthread_t

  2. Alias ​​​​dengan variabel di bash

  3. Bagaimana cara mencetak nomor di perakitan NASM?

  1. Bagaimana cara mendapatkan ps untuk mencetak grup?

  2. Bash - Cara mencetak string multi baris (dengan '\n') menggunakan printf

  3. Cara mencetak range alamat IP dengan perintah seq Linux

  1. Bagaimana Melakukan Evaluasi Variabel Tidak Langsung?

  2. Linux – Bagaimana Menggabungkan Pohon Dengan Ukuran Direktori?

  3. Cara Mengatur Variabel $Path di Linux