คุณได้ใช้ฟังก์ชั่นในพรอมต์ของคุณสำหรับชื่อสาขา git ซึ่งเป็นสิ่งที่ดีดังนั้นทำเช่นเดียวกันสำหรับเส้นทางของคุณ:
# shorten a path in $1 to max of $2 characters, prepending a "..."
function __shortpath {
if [[ ${#1} -gt $2 ]]; then
len=$2+3
echo "..."${1: -$len}
else
echo $1
fi
}
PS1='\[\033[01;32m\][$(__shortpath "\w" 50)\[\033[00m\]\[\033[01;34m\]$(__git_ps1 " (%s)")\033[01;32m\]]\[\033[00m\]\$ '
มันจะ จำกัด เส้นทางถึง 50 ตัวอักษรสุดท้าย นี่คือตัวอย่าง คุณอาจนึกถึงการตัดเพียงแค่สแลช แต่นั่นทำให้ยากขึ้น
# drops first portion of a path $1 if length is greater than $2
function __droppath {
if [[ ${#1} -gt $2 ]]; then
p=$1
while [ ${#p} -gt $2 ]; do
p="/"$(echo "$p"|cut -d"/" -f3-)
done
echo "..."$p
else
echo $1
fi
}
PS1='\[\033[01;32m\][$(__droppath "\w" 50)\[\033[00m\]\[\033[01;34m\]$(__git_ps1 " (%s)")\033[01;32m\]]\[\033[00m\]\$ '
อาจเป็นความคิดที่ดีที่จะรักษาความปลอดภัยในขณะที่วนรอบโดยการตรวจสอบว่าความยาวใหม่สั้นกว่าความยาวเก่า (ไม่เช่นนั้นจะเลิก) หรือหากความยาวใหม่เป็น 0 ซึ่งในกรณีนี้คุณอาจคืนค่าสุดท้ายของ $ p - หรือ
'\w\n\$ '
สิ่งที่ชอบ