ทำไม xterm จึงแสดง 256 สี (ไม่ใช่ xterm-256color)


11

มีคนอธิบายเรื่องนี้ได้ไหม gnome-terminalฉันใช้ ก่อนข้อมูลบางส่วน:

# echo $TERM
xterm

# infocmp xterm
Reconstructed via infocmp from file: /lib/terminfo/x/xterm
colors#8, cols#80, it#8, lines#24, pairs#64

# tput colors
8

ฉันเขียนสคริปต์ง่าย ๆ เพื่อสร้างรหัสสำหรับชุดสีเพิ่มเติม:

# Output file (current directory) and text.
OFILE='xterm256_colors_test.sh'
OFILE_COLORS='terminal_256_colors'
OTEXT='Sed ut perspiciatis unde omnis iste natus error sit voluptatem...'

# Clearing the contents from previous runs.
if [ -e $OFILE ] || [ -e $OFILE_COLORS ]
then
  > $OFILE
  > $OFILE_COLORS
fi

# Bang!
echo -e '#!/bin/bash\n' | tee --append $OFILE $OFILE_COLORS &> /dev/null
echo -e "\necho -e \"" | tee --append $OFILE &> /dev/null

# \x1b is a control character changing behaviour of the shell.
# It is also the <Ctrl+V><Esc> sequence.
for i in {016..255}; do
  echo -e "\x1b[38;5;${i}m $OTEXT $i \x1b[0m" >> $OFILE
  echo -e "color${i}=\"\[\033[38;5;${i}m\]\"" >> $OFILE_COLORS
done

# End of echo.
echo '"' | tee --append $OFILE &> /dev/null

# The file should be executable.
chmod +x $OFILE

แม้จะมีxtermเทอร์มินัลอีมูเลเตอร์พื้นฐานเมื่อฉันเรียกใช้สคริปต์ที่สร้างขึ้นฉันสามารถเห็นสีทั้งหมด 240 สี ทำไม? ฉันคิดว่าฉันควรเปลี่ยน$TERMเป็นxterm-256colorครั้งแรก

คำตอบ:


18

TERMตัวแปรสภาพแวดล้อมเป็นวิธีที่คุณผู้ใช้สามารถบอกโปรแกรม (เช่นemacs, grep, less, lsและvim) สิ่งที่ชนิดของอาคารที่พวกเขากำลังทำงานอยู่บนเพื่อให้พวกเขาจะได้รู้ว่าพารามิเตอร์รวมถึงสิ่งที่ความสามารถก็มีและสิ่งที่ลำดับหนีพวกเขา จำเป็นต้องออกเพื่อเข้าถึง สิ่งนี้มีอยู่เพราะโดยทั่วไปยากเกินไปที่ซอฟต์แวร์จะตรวจสอบสิ่งนี้ด้วยตนเอง (และเป็นไปไม่ได้มากนักเมื่อผู้ใช้เชื่อมต่อกับคอมพิวเตอร์ผ่านเทอร์มินัลที่อยู่ภายนอกและเชื่อมต่อกับคอมพิวเตอร์ด้วยสายเคเบิลข้อมูลเท่านั้น)

gnome-terminalเป็นโปรแกรมที่ให้บริการแบบเทอร์มินัลแก่ผู้ใช้และโปรแกรมที่ผู้ใช้รันภายในเทอร์มินัล  gnome-terminalอาจรับรู้ถึงตัวแปรสภาพแวดล้อมที่ตั้งค่าไว้ในสภาพแวดล้อมของมันก่อนที่จะถูกเรียกใช้ ( DISPLAYเป็นตัวอย่างที่ชัดเจน) แต่ไม่มีความรู้เกี่ยวกับตัวแปรสภาพแวดล้อมที่ตั้งค่าในกระบวนการที่ทำงานอยู่ภายใต้

ดังนั้นgnome-terminalมีความสามารถอะไรก็ตามที่มี อาจเป็นไปได้ที่จะปรับ / จำกัด สิ่งเหล่านี้จากภายนอกเช่นผ่านตัวเลือกบรรทัดคำสั่งสภาพแวดล้อมที่มีอยู่แล้วไฟล์กำหนดค่าและกล่องโต้ตอบในกรอบหน้าต่าง แต่ไม่ใช่โดยการเปลี่ยนTERMเชลล์ในหน้าต่าง หากสามารถแสดงผลได้ 256 สีแสดงว่ามีความสามารถในการแสดงผล 256 สีและคุณสามารถกำหนดให้ทำได้โดยส่งลำดับการหลีกเลี่ยงที่เหมาะสม แต่ตราบใดที่คุณได้TERMตั้งค่าให้xtermโปรแกรมที่คุณใช้จะเชื่อว่าคุณจะบอกพวกเขาว่าพวกเขากำลังทำงานในสถานีแปดสีที่มีความสามารถ และเพื่อพวกเขาจะ จำกัด คำขอของพวกเขา (ลำดับหนี) ความสามารถเหล่านั้น คุณต้องตั้งค่าTERMเป็นxterm-256colorไม่เปิดใช้งานgnome-terminalเพื่อแสดง 256 สี แต่จะบอกโปรแกรมเช่นgrepและlsจะขอให้ใช้มากกว่า 8 สี


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.