উত্তর:
Ctrl-Zবর্তমানে চলমান প্রক্রিয়া স্থগিত করে। প্রকাশে
for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done
ছাড়া সমস্ত কমান্ড convert(অর্থাত for, in, doএবং done) হয় bashবর্তমান শেল চলমান 'র কীওয়ার্ড এবং শেল নিজেই স্থগিত করতে পারবেন না (এবং এটি আপনার উদ্দেশ্য যাহাই হউক না কেন নয়)। সুতরাং যখন আপনি আঘাত করবেন Ctrl-Zএবং কমান্ড convertস্থগিত করবেন তখন আর প্রক্রিয়া করার কিছু নেই বলে লুপটি কেবল ছেড়ে যাবে।
আপনি যদি পুরো লুপটি স্থগিত করতে সক্ষম হতে চান তবে কেবল সাব-শেল পরিবেশে এটি চালান:
(for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done)
আমি জানি যে একমাত্র শেলটি বর্তমান শেলের পুরো লুপটি স্থগিত করতে সক্ষম zsh।
Ctrl-Zকেবলমাত্র একটি রূপান্তর উদাহরণ স্থগিত করতে পারে, লুপটি চালিয়ে যেতে এবং অন্যটি শুরু করতে পারে না এমন কোনও কারণ নেই। কোনও কারণে bashলুপটি থামায়। আমি যখন লুপটিতে পরীক্ষা dashচালিয়ে যাই তখন অন্যান্য শেলগুলি সম্ভবত একই কাজ করে।
zshশেলের মাধ্যমে করা যেতে পারে ( বর্তমান শেলটিতে পুরো লুপটি স্থগিত করতে সক্ষম)।
bashবিকাশকারীদের সম্ভবত আপনার মত একই মতামত ছিল। লুপটি অবিরত করা এখনও আমার প্রত্যাশা মতোই ছিল, আপনি যখন প্রক্রিয়াটি এবং হাতের নিয়ন্ত্রণটি শেলের কাছে ফিরিয়ে দিবেন তখন এটি যেখানে ছেড়ে গেছে সেখানে তোলা স্বাভাবিক মনে হয় (এবং bashতারা যুক্ত না করলে সম্ভবত আচরণ হবে অন্য কিছু করার কোড)।
for i in *.txt; do echo "$i"; sleep 0.5 ; done(জিএনইউ বাশ, সংস্করণ 4.2.53)