এটি বেশ কয়েকটি শেলের মধ্যে বাগের মতো দেখায়, এটি ksh93 এবং zsh এর সাথে প্রত্যাশা অনুযায়ী কাজ করে ।
পটভূমি:
বেশিরভাগ শেলগুলি মূল শেলের ভিতরে লুপটি চালিয়ে যায় বলে মনে হয় এবং
আপনি যদি লগ-ইন না করে শেল দিয়ে ^ Z টাইপ করেন তবে বোর্ন শেল পুরো শেলটি সাসপেন্ড করে
বাশ কেবলমাত্র স্থগিত করে sleep
এবং তারপরে একটি নতুন শেল প্রম্পট মুদ্রণের পক্ষে লুপটি ছেড়ে দেয়
ড্যাশ এই কমান্ডটিকে অস্বীকারযোগ্য করে তোলে
সঙ্গে ksh93 , জিনিষ খুব ভিন্ন কাজ:
ksh93 একই কাজ করে, কমান্ডটি প্রথমবার শুরু হওয়ার সাথে সাথে, তবে sleep
ksh93-তে বুটিন হিসাবে, ksh93 এর একটি হ্যান্ডলার রয়েছে যার ফলে লুপটি মূল শেলটি কাঁটাচামচ করে দেয় এবং তারপরে আপনি যখন ^ Z টাইপ করেন তখন সাসপেন্ড হয়।
আপনি যদি পরে ksh93 টাইপ করেন তবে লুপটি চালিত ফরকডfg
অফ চাইল্ড অবিরত থাকবে।
বাশ এবং ksh93 এর জবকন্ট্রোল বার্তাগুলির তুলনা করার সময় আপনি মূল পার্থক্যটি দেখতে পান:
বাশ রিপোর্ট:
[1]+ Stopped sleep 1
তবে ksh93 রিপোর্ট:
^Z[1] + Stopped while true; do echo .; sleep 1; done
zsh ksh93 এর মতো আচরণ করে
উভয় শেল দিয়ে আপনি যতক্ষণ না ^ Z টাইপ না করেন ততক্ষণ আপনার একটি একক প্রক্রিয়া (মূল শেল) থাকে এবং ^ Z টাইপ করার পরে দুটি শেল প্রক্রিয়া থাকে।
$?
, এবং তাইtrue
নাtrue
। সম্ভবত। আমি মনে করি.