แค่คำถามด่วน เป็นไปได้ไหมที่จะแท็บผลลัพธ์บน Ubuntu 16.04 LTS ฉันสร้างสองภาพด้านล่างเพื่อลองและอธิบายสิ่งที่ฉันหมายถึงโดยสิ่งนี้
แค่คำถามด่วน เป็นไปได้ไหมที่จะแท็บผลลัพธ์บน Ubuntu 16.04 LTS ฉันสร้างสองภาพด้านล่างเพื่อลองและอธิบายสิ่งที่ฉันหมายถึงโดยสิ่งนี้
คำตอบ:
คุณสามารถทำสิ่งนี้ - ด้วย file descriptors:
บันทึก descriptor เอาต์พุตปัจจุบันเพื่อให้เราสามารถกู้คืนได้ในภายหลัง
exec 3>&1
เปลี่ยนเส้นทางสตรีมเอาต์พุตไปยังการทดแทนกระบวนการที่แทรกแท็บ - ตัวอย่างเช่น
exec 1> >(paste /dev/null -)
จากจุดนี้กระบวนการใด ๆ ที่เขียนไปยังเอาต์พุตมาตรฐานจะมีเอาต์พุตที่ 'กรอง' ผ่านpaste
คำสั่งเพื่อแทรกแท็บเมื่อเริ่มต้น
เมื่อคุณทำเสร็จแล้วคุณสามารถกลับมาทำงานตามปกติได้โดยการกู้คืน descriptor ไฟล์ที่บันทึกไว้และปิดชั่วคราว
exec 1>&3 3>&-
less
man
ฉันเข้าใจว่าคำตอบนี้ไม่เหมาะสำหรับคุณ แต่คุณสามารถสร้างฟังก์ชั่น Bash ด้วยชื่อแบบง่าย ๆ_
(หรือสิ่งอื่น ๆ ที่ยังไม่ได้ใช้) ซึ่งรันคำสั่งที่ได้รับเป็นอาร์กิวเมนต์และเยื้องเอาต์พุตทั้งหมดด้วยแท็บ
ตัวอย่าง:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
รหัสของฟังก์ชั่นนี้จะเป็นแบบนี้:
_(){ sed "s/^/\t/" <($*); }
คุณสามารถต่อท้าย~/.bashrc
ไฟล์ของคุณเพื่อให้สามารถใช้งานได้ในเซสชัน Bash ทั้งหมดของผู้ใช้ของคุณโดยการเรียกใช้:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
หากคุณต้องการให้ผู้ใช้ทุกคนสามารถใช้งานได้ให้ผนวกเข้าด้วยกัน/etc/bash.bashrc
(ต้องใช้สิทธิ์ผู้ดูแลระบบ):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
หรือคุณสามารถสร้างไฟล์สคริปต์เช่นเดียว/usr/local/bin/_
กับเนื้อหาต่อไปนี้เพื่อให้ได้เหมือนกันโดยไม่มีฟังก์ชัน Bash และสำหรับผู้ใช้ทั้งหมด:
#!/bin/bash
sed "s/^/\t/" <($*)
คุณต้องทำให้สคริปต์เรียกใช้งานได้หลังจากบันทึกไฟล์โดยใช้
sudo chmod +x /usr/local/bin/_
ด้วยการecho
เฉพาะคุณสามารถตีความเครื่องหมายทับขวาเช่น\t
( หยุดแท็บ ) ด้วย-e
สวิตช์:
echo -e "\tHello World"
แต่มันก็แทบจะเป็นไปไม่ได้ (หรืออาจเป็นไปได้) ในการแก้ไขเอาต์พุตของคำสั่งทุกวิธี หากเป้าหมายของคุณคือความสะดวกในการอ่านคุณอาจต้องการปรับแต่งรูปลักษณ์ (เช่นการระบายสี) ของพรอมต์คำสั่งของคุณดังที่แสดงที่นี่:
PS1
คุณสามารถปรับแต่งรวดเร็วของคุณโดยการเปลี่ยนเนื้อหาของตัวแปรสภาพแวดล้อม คุณสามารถดูตัวอย่างเล็กน้อยเกี่ยวกับวิธีการทำเช่นนั้นในบล็อกโพสต์ภาพหน้าจอด้านบนมาจาก วิธีการใช้รายละเอียดลำดับที่เรียกว่า ANSI escape ในรายละเอียดวิธีใช้เครื่องมือที่สะดวกสบายมากขึ้นวิธีการใช้การเปลี่ยนแปลงที่เป็นค่าเริ่มต้นในเทอร์มินัลใหม่เป็นต้นอยู่นอกเหนือขอบเขตของคำตอบนี้ แต่ถ้าคุณตัดสินใจที่จะใช้เทคนิคนั้นมีบทเรียนมากมายและข้อมูลเพิ่มเติมเกี่ยวกับเว็บ
YOUR COMMAND | indent
หรือถ้าคุณต้องพิมพ์คำสั่งอื่นต่อหน้ามัน (อาจเป็นเพียงขีดล่าง) เช่น_ YOUR COMMAND
?