এটি টাইমিংয়ের বিষয়: ব্যাশ hello
ব্যাকগ্রাউন্ডে কমান্ডটি প্রবর্তন করে , তারপরে এটি আপনাকে একটি নতুন কমান্ড প্রবেশ করার জন্য একটি প্রম্পট প্রদর্শন করে, তারপরে পটভূমি কমান্ডটি কিছু আউটপুট মুদ্রণ করে। আপনি যখন পরবর্তী কমান্ড লাইনটি প্রবেশ করেন (খালি কমান্ড লাইন, আপনি যদি কেবল চাপুন Enter), ব্যাশ ব্যাকগ্রাউন্ড কাজ শেষ হয়ে গেছে এমন বিজ্ঞপ্তিটি প্রদর্শন করে, তারপরের পরবর্তী প্রম্পটটি।
আপনি যে স্ক্রিপ্ট দিয়ে শুরু করছেন তা পরীক্ষা করতে sleep 3
এবং পটভূমিতে স্ক্রিপ্টটি চালু করার ঠিক পরে টাইপ করা শুরু করতে পারেন, আপনি কী গতিতে অনুসরণ করতে পারেন তা দেখার জন্য।
notify
বিকল্পটি সেট করে কোনও পটভূমি কাজ শেষ হলে আপনি অবিলম্বে বাশকে আপনাকে অবহিত করতে পারেন set -b
। তারপরে আপনি দেখতে পাবেন:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
বাশ এই ক্ষেত্রে প্রম্পটটি পুনরায় আঁকবে না। আপনি এখনও প্রম্পট লাইনে একটি কমান্ড লাইন সম্পাদনা করছেন যা পটভূমির কাজ মুদ্রণের আগে উপস্থিত হয়েছিল hello world!
। আপনি Esc 1 Ctrl+ টিপে বর্তমান লাইনটি আবার অঙ্কন করতে পারেন L। আপনি কমান্ডটি redraw-current-line
আরও সুবিধাজনক কীতে আবদ্ধ করতে চাইতে পারেন ; উদাহরণস্বরূপ, বর্তমান লাইনটি Ctrl+ Lপুনরায় আঁকতে এবং Ctrl+ Alt+ Lস্ক্রিনটি সাফ করতে আপনার নীচের লাইনগুলি যুক্ত করুন ~/.inputrc
:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
আমি বাশকে স্বয়ংক্রিয়ভাবে প্রম্পট লাইনটি পুনরায় আঁকানোর কোনও উপায় জানি না। Zsh এটি ডিফল্টরূপে করে।