Score:2

วิธีย่อไดเร็กทอรีการทำงานปัจจุบันใน bash prompt แบบไดนามิก

ธง tr

ดังนั้นฉันกำลังมองหาวิธีที่จะย่อเส้นทางในพรอมต์ให้สั้นลงหากถึงความยาวที่กำหนด เช่น:

user1@localhost:~/Pictures/awesome_trip/

คงจะดี แต่ถ้าเรา cd ลงในไดเร็กทอรีย่อยเพิ่มเติมเช่น:

user1@localhost:~/Pictures/awesome_trip/first_day/mikes_camera/funny_pics

ฉันต้องการแจ้งให้เปลี่ยนเป็น

user1@localhost:/.../funny_pics

ฉันรู้วิธีเปลี่ยนพรอมต์ใน .bashrc

ฉันสงสัยว่ามีวิธีที่จะทำให้มันเป็นไดนามิกหรือไม่เพื่อให้ฉันสามารถรับความยาวปัจจุบันของ dir ที่ใช้งานได้และตรวจสอบความยาวและเปลี่ยนพรอมต์ บางสิ่งบางอย่างตามแนวของ:

CUR_PROMPT=$(รหัสผ่าน); #รับงานผบ.ตร

CUR_PROMPT_LENGTH={#CUR_PROMPT}; #วัดความยาว

ถ้า[ $CUR_PROMPT_LENGTH -gt 20 ]; แล้ว 
  # ถ้าพรอมต์ยาว ให้เรนเดอร์เวอร์ชันที่สั้นลง
  PS1='\u@\h:...\w:\$';
อื่น
  # อื่นแสดงเวอร์ชันยาว
  PS1='\u@\h:\W:\$'

หวังว่าจะมีวิธีการทำเช่นนี้ ขอบคุณสำหรับคำตอบ.

hr flag
bash shell ใช้กลไก `PROMPT_DIRTRIM` สำหรับสิ่งนั้นแล้ว - ดู [ฉันจะย่อพรอมต์บรรทัดคำสั่ง (bash) ให้สั้นลงได้อย่างไร] (https://askubuntu.com/a/459355/178692)
Telegonicaxx avatar
tr flag
@steeldriver นี่คือสิ่งที่ฉันกำลังมองหา ฉันไม่อยากจะเชื่อเลยว่าฉันไม่ได้เจอมันในขณะที่กูเกิ้ล ขอขอบคุณ!
Score:0
ธง cn

คุณสามารถใช้รหัสด้านล่าง เพียงเพิ่มลงในไฟล์ .bashrc ในโฮมโฟลเดอร์ของคุณ โดยพื้นฐานแล้วจะทำให้พรอมต์ของคุณคล้ายกับ "user@computername [dir] $" ดังนั้นจึงอาจดูเหมือน telegonicaxx@laptop [shared] $

ส่งออก PS1="\u@\h [\W] \$\[$(tput sgr0)\]"

คุณสามารถสร้างรูปแบบและสีของคุณเองโดยใช้เว็บไซต์ที่เชื่อมโยงด้านล่าง

http://bashrcgenerator.com/

Telegonicaxx avatar
tr flag
ขอบคุณ @Roxana นี่เป็นเว็บไซต์ที่เรียบร้อยจริงๆ ขอบคุณที่แบ่งปัน ไม่ใช่สิ่งที่ฉันกำลังมองหา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา