আমি clearপ্রতিবার টার্মিনালে (আমার কমান্ড কার্যকর করার আগে) কিছু কমান্ড টাইপ করে কমান্ডটি কার্যকর করতে বাশকে কনফিগার করতে চাই । আমি এটা কিভাবে করবো?
আমি ডেবিয়ান লিনাক্স ব্যবহার করছি।
আমি clearপ্রতিবার টার্মিনালে (আমার কমান্ড কার্যকর করার আগে) কিছু কমান্ড টাইপ করে কমান্ডটি কার্যকর করতে বাশকে কনফিগার করতে চাই । আমি এটা কিভাবে করবো?
আমি ডেবিয়ান লিনাক্স ব্যবহার করছি।
উত্তর:
বাশ একটি পূর্ববর্তী হুক আছে । প্রকার, রকম.
preexec () {
clear
}
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`; # obtain the command from the history, removing the history number at the beginning
preexec "$this_command"
}
trap 'preexec_invoke_exec' DEBUG
Enterকমান্ডটি কার্যকর করার আগে আপনি চাপ দেওয়ার পরে এটি পর্দা সাফ করবে । এটা আমার জন্য এই মত কাজ করে। প্রতিটি ইন্টারেক্টিভ কমান্ডের জন্য প্রিক্সেক হুক কার্যকর করা হয়, কমান্ডটি অন্তর্নির্মিত বা বহিরাগত কমান্ড বা অনেকগুলি কমান্ডের বিষয়টি বিবেচনা করে না।
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return;সমস্যাটি সম্পূর্ণ না হলে কিছুই করবেন না যে PROMPT_COMMAND চলছে এবং প্রকৃত কমান্ডের পরেও আটকা পড়েছে; এছাড়াও কেউ আমাকে বলতে পারেন কেন local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;এখানে আছেন?
history -1সামনে কমান্ড লাইনটি মুদ্রণ করে, সামনে একটি ইতিহাস নম্বর থাকে। সেড ফিল্টার ইতিহাসের সংখ্যাটি সরিয়ে দেয়।
bind 'RETURN: "\e[1~clear; \e[4~\n"'
এর পরে প্রতিবার আপনি returnকেবল লেখার পরিবর্তে টিপুন \nএটি লাইনের শুরুতে চলে যাবে, পাঠ্যটি প্রবেশ করান clear;, তারপরে প্রান্তে চলে যাবে এবং \nপ্রত্যাশা অনুযায়ী প্রবেশ করবে।
clearকমান্ড।
clearকমান্ড এবং কমান্ড আউটপুট অদৃশ্য হওয়ার আগে আমার ক্ষেত্রে কার্যকর করা হয়। তবে প্রম্পট ক্ষেত্রে এটি না।
clear;প্রতিটি অতিরিক্ত জন্য আউটপুটে সন্নিবেশ করে \n।
bind "\"\\eOQ\":\"\e[1~ls;#\\n\""এটি শুরুতে চলে ls;#যাবে, সেখানে কী ছিল তা মন্তব্য করে টাইপ করুন , এবং lsসঠিকভাবে কমান্ডটি চালান ! ধন্যবাদ!
আমি আজ জিজ্ঞাসা করা একটি প্রশ্ন থেকে (ব্যবহারকারী @ একোলির উত্তরের কৃতিত্ব সহ ):
bind '"\C-m": "\C-l\C-j"'
\C-m'Enter' কী simulating, \C-lsimulating Ctrl+lযেমন এটা পরিষ্কার এবং \C-jহয় "সম্পর্কে newline-এবং-ইন্ডেন্ট", তাই কমান্ড Ctrl + L & Ctrl + J থেকে এন্টার কী অবিচল
এটি GNU ব্যাশ, সংস্করণ 3.2.53 (1) -রেলেজে (x86_64-আপেল-ডারউইন 14) এবং এই থ্রেডের অন্যান্য উত্তরগুলিতে কাজ করে না। এছাড়াও, এটি প্রতিটি অন্যান্য কমান্ডকে 'পরিষ্কার' কমান্ড দিয়ে ইতিহাসকে দূষিত করে না।
cb4() {
preexec () {
clear
}
}
এটি ডাকা একটি হুক ব্যবহার করে preexec, নিশ্চিত zsh এর সাথেও কাজ করে
তারপরে আপনার চালিত প্রতিটি কমান্ডের আগে আপনি যে কোনও সেশনটি স্বয়ংক্রিয়ভাবে সাফ করতে চান: cb4
preexec () {
clear
}
শব্দ প্রতিস্থাপন clearসঙ্গেtput reset
tput alচ্ছিক তবে পুনরায় সেট করার প্রক্রিয়াটি গতিময় করে