বাশ প্রম্পট প্রতিটি সময় একটি নতুন প্রম্পট প্রদর্শিত কমান্ড আদেশ


11

আমার বাশে নিম্নলিখিত প্রম্পট রয়েছে যা বর্তমান গিট শাখাটি দেখায়:

PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc

যা আমি .bashrc উত্স করার সময় কাজ করে, তবে আমি যখন শাখাটি পরিবর্তন করি তা নয়, সুতরাং PS1 ভারটি কেবলমাত্র আমি .bashrc উত্স করলেই মূল্যায়ন করা হয় তবে প্রতিবার নতুন প্রম্পট প্রদর্শিত হলে এটি মূল্যায়ন করা উচিত। এটি কীভাবে বাশ ৪.৩ দিয়ে সম্পন্ন করা যায়?

উত্তর:


14

আপনার সমস্যাটি হ'ল এটি যুক্ত হওয়ার আগে$(git_prompt) কিছু ধ্রুব স্ট্রিংয়ে মূল্যায়ন করা হয় । পরিবর্তে আপনাকে কোডটি যুক্ত করতে হবে:$PS1

PS1+='$(git_prompt)'

2
এটি ত্রুটিটি দেয় bash: command substitution: line 1: syntax error near unexpected token ) 'বাশ: কমান্ড প্রতিস্থাপন: লাইন 1:git_prompt)'
danielr1996

1
এটা সত্যিই অদ্ভুত। একটি "ব্যাকআপ" ( oldPS1="$PS1") তৈরি করুন এবং তারপরে চেষ্টা করুন:PS1='$(git_prompt) '
হউক লেগ্রেই

9

প্রম্পট হিসাবে এটি ব্যবহার করে আমি এখনই এটি ঠিক করেছি

PS1="$green\u $r@ $red\h $r: $yellow\W \!$r \$(git_prompt) \n$yellow\$ $r"

আমি এক পিএস 1 স্ট্রিংয়ের একাধিক স্ট্রিং কনকনটেটেড করার আগে সমস্যাটি মনে হয়েছিল। কৌশলটি হ'ল \কমান্ডটি উত্তেজিত করার আগে একটি লিখতে হবে $(git_prompt)

সুতরাং $(git_prompt)মূল্যায়ন করা হবে যখন .bashrcমূল্যায়ন করা হয় এবং

\$(git_prompt) প্রতিবার নতুন প্রম্পট প্রদর্শিত হলে মূল্যায়ন করা হবে


5
ভবিষ্যতে যে কেউ এটির "জন্য: স্ট্রিংয়ের চারপাশে ঘেরযুক্ত ডাবল-কোটগুলি নোট করুন । এগুলি ব্যবহার করা কার্যকর \$(git_prompt)হয় না।
dthor

1

আপনার PS1 এ একক উদ্ধৃতি চেষ্টা করুন

PS1+='$(git_prompt)'

আমি আমার psOne ফাংশনটিও পরামর্শ দিই

psOne () 
{ 
    ps1tm=${1:-01};
    ps1tc=(30 31 32 33 34 35 36 37 38);
    PS1='${debian_chroot:+($debian_chroot)}\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\]\u\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\]@\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\]\h\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\] :\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\] \w\[\033[${ps1tm};${ps1tc[$((RANDOM%${#ps1tc[@]}))]}m\] \$ '
}

এখানে চিত্র বর্ণনা লিখুন


এটি আকর্ষণীয় দেখায়, আপনি কি PS1tm এর জন্য ব্যাখ্যা করতে পারেন?
danielr1996

@ danielr1996 এটি পাঠ্য মোডে (সাহসী আনবোল্ড ঝলক under 0..5 under আন্ডারলাইন করুন, এই ফাংশনগুলিতে কোনও যুক্তি না থাকলে 01 তে সেট করা আছে
জোনাহ

0

পাগলামি দেখতে চান? এইভাবে আমি আমার বাশ প্রম্পটটি তৈরি করব:

# inspiration: http://www.stumbleupon.com/su/2LpQMi 
user_host_path="${debian_chroot:+($debian_chroot) }"'\u@\h:\w'
xterm_title='\[\e]0;'"$user_host_path"'\a\]'
[[ $TERM == xterm* || $TERM == rxvt* ]] && line1="${xterm_title}"
git_branch='$(git_current_branch " (%s)")'
line1="${line1}${user_host_path}${git_branch} "
line2='\$ '
print_time='{ printf "%*s" $(($(tput cols) - 10)) " "|sed -e "s/./˙/g" -re "s/.{6}(..)$/ bash \1/"; date "+ %T"; } >&2'
color_bold='\[\e[0;1m\]'
color_reset='\[\e[0m\]'
PROMPT_COMMAND="_rc_=\$?;${print_time};((_rc_!=0)) && PS1='${line1}\n${color_bold}[\$_rc_]${color_reset} ${line2}' || PS1='${line1}\n${line2}'"
unset user_host_path xterm_title color_bold color_reset line1 line2 print_time git_branch

আমি রঙের বড় ফ্যান নই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.