আমি এটি ব্যবহার করি, এটি একাধিক লাইন এবং ইনডেন্টগুলির দৈর্ঘ্যের সাথে আবৃত করে user@host
যাতে এটি বর্তমানকে PS1
কার্যকরভাবে কার্যকর বলে ধরে নেয় ' \u@\h:\w$
' এটি পাথটি ছাঁটাই করে না এবং এটি বর্তমান টার্মিনাল প্রস্থের সাথে খাপ খায়। এটি কেবলমাত্র পথটি বিভক্ত করে /
, তাই এটি দীর্ঘতর ডিরেক্টরিগুলির সাথে মার্জিতভাবে ডিল করে না (তবে এটি নির্বাচন / অনুলিপিটির জন্য স্থানগুলি সংরক্ষণ করে)। এটি নিশ্চিত করে যে আপনার কাছে সর্বদা ইনপুট জন্য কমপক্ষে 20 টি অক্ষরের স্থান উপলব্ধ রয়েছে।
readonly _PS1="${PS1}" 2>/dev/null
function myprompt()
{
local IFS
local nn nb pbits xpwd="" ww=60 len=0 pp='\\w\$ '
local indent uh="${LOGNAME}@${HOSTNAME//.*/}"
test -n "$COLUMNS" && let ww=$COLUMNS-20 # may be unset at startup
PS1="${_PS1}"
if [ ${#PWD} -ge $ww ]; then
printf -v indent "%${#uh}s%s" " " "> " # indent strlen(user@host)
IFS=/ pbits=( $PWD ); unset IFS
nb=${#pbits[*]}
for ((nn=1; nn<nb; nn++)) {
if [ $(( $len + 1 + ${#pbits[$nn]} )) -gt $ww ]; then
xpwd="${xpwd}/...\n${indent}..."
len=0
fi
xpwd="${xpwd}/${pbits[$nn]}"
let len=len+1+${#pbits[$nn]}
}
# add another newline+indent if the input space is too tight
if (( ( ${#uh} + len ) > ww )); then
printf -v xpwd "${xpwd}\n%${#uh}s" " "
fi
PS1="${PS1/$pp/$xpwd}$ "
fi
}
PROMPT_COMMAND=myprompt
এটি ম্যাজিকটি বাইরে নিয়ে \w
(কেবল এটির \w$
জন্য মেলে ) এর সাথে PS1
এবং এর পরিবর্তে কাজ করে $PWD
, তারপরে এটিকে অক্ষরের স্বচ্ছ স্ট্রিং হিসাবে মোড়ক করে। এটি PS1
সংরক্ষিত আসল মান থেকে প্রতিবার সংশোধন করে _PS1
, এর অর্থ "অদৃশ্য" পলায়নগুলিও সংরক্ষিত থাকে, এর জন্য আমার সম্পূর্ণ আসল প্রম্পট স্ট্রিং xterm
এবং সাহসী প্রম্পট:
PS1="\[\033]0;\u@\h:\w\007\]\[$(tput bold)\]\u@\h\[$(tput sgr0)\]:\w$ "
এবং শেষের ফলটি একটি 80 কলামের টার্মিনালটিতে:
mr@onomatopoeia:~$ cd /usr/src/linux/tools/perf/scripts/perl/Perf-Trace-Util/lib/Perf/Trace
mr@onomatopoeia:/usr/src/linux/tools/perf/scripts/perl/Perf-Trace-Util/lib/...
> .../Perf/Trace$ _
এটি ব্যাশ -৩.২ থেকে printf -v var
ব্যবহৃত হিসাবে ব্যবহৃত হয়। বিভিন্ন জটিলতার কারণে এর অন্যান্য বিভিন্নতার জন্য এটি কিছু সামঞ্জস্যের প্রয়োজন হবেPS1
।
( এক্সটার্ম শিরোনাম বারের পথটি মোড়ানো বা সংক্ষেপিত নয়, যা উপরের ফাংশনে অন্য উত্তরগুলির মধ্যে একটি অন্তর্ভুক্ত করে এটি করা যেতে পারে))