เป็นไปได้หรือไม่ที่จะใช้สีจริงใน bash prompt ฉันใช้ iTerm2 บน MacOS ซึ่งรองรับสีจริง แต่ไม่แน่ใจว่าฉันจะใช้สีจริงเพื่อแจ้ง bash
ในขณะที่ฉันกำลังใช้ tput af <number>
ใน bash prompt ของฉันเพื่อให้ได้สี
เป็นไปได้หรือไม่ที่จะใช้สีจริงใน bash prompt ฉันใช้ iTerm2 บน MacOS ซึ่งรองรับสีจริง แต่ไม่แน่ใจว่าฉันจะใช้สีจริงเพื่อแจ้ง bash
ในขณะที่ฉันกำลังใช้ tput af <number>
ใน bash prompt ของฉันเพื่อให้ได้สี
คำตอบ:
ดูเหมือนว่าจะเป็นไปได้ เช่น:
export PS1="\[$(printf "\x1b[48;2;15;100;50m\]A nice dark green [rgb(15,100,50)]:\[\x1b[0m")\] "
export PS1="\[$(printf "\x1b[38;2;255;100;250m\]A lovely shade of pink [rgb(255,100,250)]:\[\x1b[0m")\] "
อาจมีวิธีที่ดีกว่าการโทรออกไปที่ $ (printf ... ) ฉันหวังว่าจะมี แต่ฉันไม่รู้ กุญแจสำคัญคือการห่อสิ่งที่ 'เมตา' ทั้งหมด (แต่ไม่ใช่เนื้อหาจริง) ใน \[
และ \]
เพื่อป้องกันไม่ให้เชลล์นับเป็นส่วนหนึ่งของความยาวพรอมต์เพื่อให้เล่นได้อย่างดีเมื่อถูกวาดใหม่ (เช่นเมื่อขี่จักรยานผ่านประวัติศาสตร์)
ตัวเลขสามตัวสุดท้ายในแต่ละรายการ \x1b[...m
expression แสดงค่าสีแดงสีเขียวและสีน้ำเงินที่ต้องการ (จาก 0 ถึง 255)
หมายเลขแรกตั้งพื้นหลัง (48) หรือพื้นหน้า (38) ฉันไม่รู้ว่าหมายเลขอื่นทำอะไร แต่เล่นกับมันเพิ่มในอีก \x1b[38;4m
ดูเหมือนว่าจะตั้งค่าข้อความที่ขีดเส้นใต้
คุณอาจรวบรวมเพิ่มเติมจากส่วนสำคัญนี้: https://gist.github.com/XVilka/8346728