Hanya pertanyaan singkat. Apakah mungkin untuk meng-tab output pada Ubuntu 16.04 LTS? Saya telah membuat dua gambar di bawah ini untuk mencoba dan menggambarkan apa yang saya maksud dengan ini.
Hanya pertanyaan singkat. Apakah mungkin untuk meng-tab output pada Ubuntu 16.04 LTS? Saya telah membuat dua gambar di bawah ini untuk mencoba dan menggambarkan apa yang saya maksud dengan ini.
Jawaban:
Anda dapat melakukan sesuatu seperti ini - dengan deskriptor file:
simpan deskriptor keluaran saat ini sehingga kami dapat mengembalikannya nanti
exec 3>&1
mengarahkan aliran output ke substitusi proses yang menyisipkan tab - misalnya
exec 1> >(paste /dev/null -)
Dari titik ini, setiap proses yang menulis ke output standar akan memiliki output yang 'difilter' melalui paste
perintah untuk memasukkan tab di awal.
Setelah selesai, Anda bisa melanjutkan perilaku normal dengan mengembalikan deskriptor file yang disimpan dan menutup yang sementara
exec 1>&3 3>&-
less
atau alat serupa untuk memungkinkan gulir output, seperti misalnya man
.
Saya mengerti jawaban ini tidak optimal untuk Anda, tetapi Anda bisa membuat fungsi Bash dengan nama sederhana _
(atau apa pun yang belum digunakan) yang menjalankan perintah yang didapatnya sebagai argumen dan indentasi semua outputnya dengan sebuah tab.
Sebuah contoh:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Kode fungsi ini hanya berupa ini:
_(){ sed "s/^/\t/" <($*); }
Anda dapat menambahkannya ke ~/.bashrc
file Anda sehingga akan tersedia di semua sesi Bash pengguna Anda dengan menjalankan:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Jika Anda ingin membuatnya tersedia untuk semua pengguna, tambahkan saja /etc/bash.bashrc
(memerlukan hak admin):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Atau Anda juga bisa membuat file skrip seperti /usr/local/bin/_
dengan konten berikut untuk mencapai yang sama tanpa fungsi Bash dan untuk semua pengguna:
#!/bin/bash
sed "s/^/\t/" <($*)
Anda harus membuat skrip dapat dieksekusi setelah menyimpan file menggunakan
sudo chmod +x /usr/local/bin/_
Dengan echo
spesifik, Anda dapat mengartikan backslash lolos seperti \t
( penghentian tab ) dengan -e
sakelar:
echo -e "\tHello World"
Tetapi hampir tidak mungkin (atau mungkin mungkin) untuk memodifikasi output dari setiap perintah dengan cara itu. Jika kemudahan membaca adalah tujuan Anda, Anda mungkin ingin melihat ke dalam menyesuaikan tampilan (misalnya pewarnaan) dari command prompt Anda, seperti yang ditunjukkan di sini:
Anda dapat menyesuaikan permintaan Anda dengan mengubah konten variabel lingkungan PS1
. Anda dapat melihat sedikit contoh bagaimana melakukannya di posting blog dari tangkapan layar di atas. Cara menggunakan yang disebut urutan pelarian ANSI secara terperinci, cara menggunakan alat yang lebih nyaman, bagaimana agar perubahan diterapkan secara default di terminal baru dll. Berada di luar cakupan jawaban ini. Tetapi jika Anda memutuskan untuk menggunakan teknik itu, ada banyak tutorial dan informasi lebih lanjut di web.
YOUR COMMAND | indent
atau jika Anda harus mengetikkan perintah lain di depannya (bahkan mungkin hanya garis bawah) seperti_ YOUR COMMAND
?