ก่อนที่คุณจะคลิกไปนี่ไม่ใช่คำถามทั่วไป "ฉันจะทำให้ bash prompt มีสีได้อย่างไร" ฉันได้กำหนด bash prompt ของฉันให้เป็นแบบนี้แล้ว:
[user @ host]----[$(pwd)]
$
ที่ทุกอย่างในวงเล็บเป็นสีฟ้าอ่อนและทุกอย่างอื่น (รวมถึง $) เป็นสีดำโดยเพิ่มสิ่งต่อไปนี้ในไฟล์ ~ / .bashrc ของฉัน
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
เป้าหมายคือการทำให้มันเป็นอย่างนั้นสิ่งเดียวที่เปลี่ยนแปลงเมื่อฉันใช้ 'sudo su' คือการที่ $ ดำเปลี่ยนเป็น # สีแดง ฉันดูใน /etc/bash.bashrc และ / etc / profile เพื่อดูว่ามีเพียงบรรทัดที่จะแสดงความคิดเห็น แต่มีหลายสิ่งเกี่ยวกับ debian_chroot ที่ฉันไม่เข้าใจและฉันไม่ต้องการ เพื่อขันสกรู ฉันจะทำสิ่งที่ฉันต้องการให้สำเร็จได้อย่างไร
PS นี่คือสิ่งที่ฉันต้องการให้พรอมต์ให้ดูเหมือนราก
[user @ host]----[$(pwd)]
(red)#
แก้ไข: ทำเครื่องหมายสิ่งนี้ที่แก้ไขแล้วผนวกรหัสข้างบนกับ ~ / .bashrc ในขณะที่รูตบรรลุเป้าหมายของฉัน นอกจากนี้ในรหัสข้างต้น $ (pwd) จะแสดงเฉพาะโฮมไดเร็กตอรี่ (ฉันเดาเพราะนั่นคือไดเร็กตอรี่ที่ใช้งานได้เมื่อเปิดเทอร์มินัล), และไม่อัพเดทเลย การแทนที่ $ (pwd) ด้วย \ w จะแก้ไขสิ่งนี้ แต่จะแสดงโฮมไดเร็กตอ~
รี่ซึ่งฉันพยายามหลีกเลี่ยง
\e[01;31m
\[...\]
นี่คือคำอธิบายภายใต้พรอมต์ในคู่มือ ดูmywiki.wooledge.org/BashFAQ/053 ด้วย
pwd
ไม่ทำงานในพรอมต์คือคุณต้องหนีเครื่องหมายดอลลาร์มิฉะนั้น$(pwd)
จะถูกดำเนินการก่อนที่เนื้อหาจะถูกวางใน $ PS1 PS1="\$(pwd) "
คุณสามารถทดสอบได้ด้วยนี้