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>&1mengarahkan 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 pasteperintah 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>&-lessatau 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 ~/.bashrcfile 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 echospesifik, Anda dapat mengartikan backslash lolos seperti \t( penghentian tab ) dengan -esakelar:
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 | indentatau jika Anda harus mengetikkan perintah lain di depannya (bahkan mungkin hanya garis bawah) seperti_ YOUR COMMAND?