টোনিন আমার ডিফল্ট প্রম্পটে একটি বাগ নির্দেশ করেছে । সর্বনিম্ন উদাহরণ:
PS1 সেট করুন:
PS1='$(exit_code=$?; [[ $exit_code -eq 0 ]] || printf %s $(tput setaf 1) $exit_code $(tput sgr0) " ")$ '
এই মুহুর্তে, প্রম্পটটি এর মতো দেখাচ্ছে:
$
এখন চালিয়ে প্রস্থান কোড আউটপুট ট্রিগার করুন:
false
এখন প্রম্পটে রেখার প্রারম্ভের সময় লাল রঙের প্রস্থান কোড রয়েছে:
1 $
- টিপুন Ctrl- r।
"মিথ্যা" টাইপ করুন। এখন প্রম্পটে কেবল অনুসন্ধান রয়েছে:
(reverse-i-search)`false': false
- টিপুন Enter।
ফলস্বরূপ টার্মিনাল ইতিহাসে নিম্নলিখিতটি রয়েছে:
1 $ch)`false': false
প্রত্যাশিত আউটপুট:
1 $ false
এটি হ'ল ইতিহাস সন্ধান আউটপুটটি প্রম্পটের সাথে মিশে গেছে এবং প্রকৃত কমান্ডটি লুকিয়ে রয়েছে যা চালিত হয়েছিল।
আমি এটি ব্যবহার করেPROMPT_COMMAND
এটিকে ঘিরে কাজ করার চেষ্টা করেছি :
set_exit_code() {
exit_code=$?
[[ $exit_code -eq 0 ]] || printf %s $(tput setaf 1) $exit_code $(tput sgr0) " "
}
set_bash_prompt() {
PS1='$(set_exit_code)$ ' # Double quotes give the same result
}
PROMPT_COMMAND=set_bash_prompt
এটি কাজ করছে বলে মনে হচ্ছে না - অনুসন্ধান এবং চালানোর পরে লাইনটি ঠিক আগের মতো দেখায়।
আমি এটা কিভাবে ঠিক করবো?