ในสถานที่มากมายขึ้นอยู่กับ
บนเทอร์มินัลเสมือนและเทอร์มินัลจริงTERM
ตัวแปรสภาพแวดล้อมถูกตั้งค่าโดยโปรแกรมที่เชื่อมโยงกับlogin
และได้รับสืบทอดมาตลอดจนถึงเชลล์เชิงโต้ตอบที่ดำเนินการเมื่อมีการเข้าสู่ระบบ โดยที่สิ่งนี้เกิดขึ้นได้อย่างหลากหลายจากระบบหนึ่งไปอีกระบบหนึ่งและตามชนิดของเทอร์มินัล
เทอร์มินัลแบบอนุกรมและอนุกรมที่แท้จริงอาจแตกต่างกันไปตามชนิดของสายไฟ ดังนั้นโดยทั่วไปแล้วgetty
โปรแกรมจะถูกเรียกใช้พร้อมกับอาร์กิวเมนต์ที่ระบุประเภทของเทอร์มินัลหรือถูกส่งผ่านTERM
โปรแกรมจากข้อมูลการกำหนดค่าบริการของผู้จัดการบริการ
เคอร์เนลเทอร์มินัลเสมือนดังที่คุณได้บันทึกไว้มีชนิดคงที่ ซึ่งแตกต่างจาก NetBSD ซึ่งสามารถเปลี่ยนแปลงประเภทเทอร์มินัลเคอร์เนลเสมือนได้ทันที Linux และ BSD อื่น ๆ มีประเภทเทอร์มินัลคงที่เดียวที่ใช้ในโปรแกรมการจำลองเทอร์มินัลของเคอร์เนล บน Linux ประเภทนั้นจะจับคู่linux
จากฐานข้อมูล terminfo (การจำลองเทอร์มินัลของเคอร์เนล FreeBSD เป็นxterm
เซ็ตย่อยจำกัดตั้งแต่เวอร์ชัน 9)
สำหรับเทอร์มินัลเสมือนเคอร์เนลไม่มีการเปลี่ยนแปลงประเภทอาคาร โปรแกรมเทอร์มินัลอีมูเลเตอร์ในเคอร์เนลจะไม่เปลี่ยนแปลงหลังจากทั้งหมด มันเป็นความไม่ถูกต้องในการเปลี่ยนประเภท โดยเฉพาะอย่างยิ่งสิ่งนี้จะทำให้การรับรู้ลำดับเคอร์เซอร์ / แก้ไขคีย์ CSI linux
ลำดับ CSI ส่งโดยลินุกซ์เคอร์เนลจำลอง terminal จะแตกต่างกันไปxterm
หรือvt100
ลำดับ CSI ส่งโดย GUI โปรแกรมจำลอง terminal ในโหมดธันวาคม VT
GUI เทอร์มินัลอีมูเลเตอร์ของคุณเป็นหนึ่งในหลาย ๆ โปรแกรมตั้งแต่ SSH dæmonถึงscreen
ที่ใช้เทอร์มินัลหลอก ชนิดของเทอร์มินัลนั้นขึ้นอยู่กับโปรแกรมเทอร์มินัลอีมูเลเตอร์ที่ทำงานบนฝั่งต้นแบบของสถานีหลอกและวิธีการกำหนดค่า ตัวเลียนแบบเทอร์มินัล GUI ส่วนใหญ่จะเริ่มโปรแกรมบนฝั่งทาสด้วยTERM
ตัวแปรที่มีค่าตรงกับการจำลองเทอร์มินัลบนฝั่งต้นแบบ โปรแกรมเช่นเซิร์ฟเวอร์ SSH จะพยายาม "ผ่าน" ประเภทอาคารที่อยู่ในปลายลูกค้าของการเชื่อมต่อ โดยปกติจะมีเมนูหรือตัวเลือกการกำหนดค่าบางอย่างให้เลือกระหว่างการจำลองเทอร์มินัล
มือที่จับ
วิธีที่ถูกต้องในการตรวจสอบความสามารถของสีนั้นไม่ใช่การเขียนรายการประเภทเทอร์มินัลในสคริปต์ของคุณ มีเทอร์มินัลมากมายที่รองรับสีมากมาย
วิธีที่ถูกต้องคือดูว่า termcap / terminfo พูดถึงประเภทเทอร์มินัลของคุณอย่างไร
color = 0
if tput Co> / dev / null 2> & 1
แล้วก็
ทดสอบ "` tput Co` "-gt 2 && color = 1
elif tput colours> / dev / null 2> & 1
แล้วก็
ทดสอบ "` tput colors` "-gt 2 && color = 1
Fi
อ่านเพิ่มเติม
- Jonathan de Boyne Pollard (2018)
TERM
. Nosh คู่มือ โปรแกรม