คุณสามารถปรับแต่งการทุบตีเทอร์มินัลด้วยใบหน้าที่ยิ้มได้อย่างไร


11

ฉันกำลังพยายามหาวิธีที่ฉันสามารถกำหนดค่า bash prompt ของเทอร์มินัลเพื่อใช้หน้ายิ้มได้ สิ่งที่ฉันต้องการ (ตามที่เห็นในตัวอย่างการระเบิด) คือการให้ cwd แยกออกจากพรอมต์ด้วย \ n และแสดงหน้ายิ้มสีเขียวหากคำสั่งประสบความสำเร็จและหน้าเศร้าสีแดงหากล้มเหลว

ความคิดใด ๆ

สิ่งนี้ได้รับแรงบันดาลใจจาก Screencast ของ Peepcode

ตัวอย่าง

คำตอบ:


15

หลังจากใช้เวลาประมาณครึ่งชั่วโมงเล่นกับรหัสของ andhrimnir และทำการวิจัยเพิ่มเติมในที่สุดฉันก็ได้สิ่งที่ฉันต้องการ

PS1="\w \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]\n\xE2\x98\xBA'; else echo -e '\[\e[01;31m\]\n\xE2\x98\xB9'; fi\` \[\e[01;34m\]\[\e[00m\]"

คุณสามารถค้นหารายการอิโมติคอนที่นี่แล้วแปลงเป็นรหัสไบต์ 3 หลักที่คุณเห็นหลังจากอักขระบรรทัดใหม่

เพื่อให้ได้สิ่งที่ผมต้องทำคือการใช้งานcwd \wนอกจากนี้คุณยังสามารถแสดงให้ผู้ใช้ปัจจุบันโดยการทำซึ่งจะส่งออกบางสิ่งบางอย่างเช่น\u@\wjoshsmith@~


6

0x263aปรากฏว่าใบหน้าที่ยิ้มแสดงไว้ด้านบนเป็นอักขระ Unicode ดังนั้นคุณจะต้องใช้เทอร์มินัลที่สามารถใช้ Unicode ได้ (ไม่แน่ใจว่า terminal.app รองรับสิ่งนี้หรือไม่

นี่คือโค้ดตัวอย่างที่พิมพ์ใบหน้ายิ้มสีเขียวเพื่อรับรหัสส่งคืนเป็น 0 และใบหน้าขมวดคิ้วสีแดง

PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]:)'; else echo -e '\[\e[01;31m\]:('; fi\` \[\e[01;34m\]$\[\e[00m\]"

เครดิตไปที่ Fingel ในฟอรัม Arch (เขาโพสต์ไว้ที่นี่ )


สุดยอดงานตัวอย่าง if / then ฉันอยากรู้วิธีการทำขึ้นบรรทัดใหม่ให้ถอด$จริงใช้สัญลักษณ์ Unicode cwdและทำให้มันแสดงเต็มรูปแบบ
Josh Smith

... และอีกหนึ่งชั่วโมงต่อมาตอบคำถามของฉันเอง (ขอบคุณคุณ!)
Josh Smith

1
ดีใจที่ฉันสามารถช่วย! มีข้อมูลจำนวนมากในกระทู้ที่ลิงค์ที่ฉันโพสต์ด้านบนหากคุณต้องการเจาะลึกลงไปใน$PS1สิ่งที่กำหนดเอง
jake-low

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