এটা আমার জন্য একটি ফলোআপ হয় তার আগে প্রশ্ন ।
আমি এই হ্যান্ডি স্নিপিটটি ব্যবহার করে / ইত্যাদি / পাসডাব্লুডে ক্ষেত্রের সংখ্যাটি যাচাই করছি। নিম্নলিখিত উদাহরণে, ব্যবহারকারীদের 'ফিল্ডকাউন্ট 1' এবং 'ফিল্ডকাউন্ট 2' ক্ষেত্রের ভুল সংখ্যা রয়েছে:
$ awk -F: ' NF!=7 {print}' /etc/passwd
fieldcount1:x:1000:100:fieldcount1:/home/fieldcount1:/bin/bash::::
fieldcount2:blah::blah:1002:100:fieldcount2:/home/fieldcount2:/bin/bash:
$ echo $?
0
আপনি লক্ষ্য করবেন যে, awk 0 এর রিটার্নের স্থিতি দিয়ে প্রস্থান করবে it's এর অবস্থান থেকে, এখানে কোনও সমস্যা নেই।
আমি এই বিশ্রী বিবৃতিটি শেল স্ক্রিপ্টে অন্তর্ভুক্ত করতে চাই। আমি ত্রুটিযুক্ত সমস্ত লাইন মুদ্রণ করতে চাই এবং রিটার্ন কোডটি 1 (ত্রুটি) হিসাবে সেট করব।
আমি একটি নির্দিষ্ট প্রস্থান স্থিতি জোর করার চেষ্টা করতে পারি, কিন্তু তারপর এডক শুধুমাত্র একটি লাইন প্রিন্ট করে:
$ awk -F: ' NF!=7 {print ; exit 1}' /etc/passwd
fieldcount1:x:1000:100:fieldcount1:/home/fieldcount1:/bin/bash::::
$ echo $?
1
আমি কি '1' এর রিটার্নের স্থিতি দিয়ে জোর করে প্রস্থান করতে বাধ্য করতে পারি এবং মেলে সমস্ত লাইন মুদ্রণ করতে পারি?
; echo $?
। যাইহোক,echo $?
কখনও চালানো হয় না কারণEND {exit err}'
স্ক্রিপ্টটি সমাপ্ত করে। প্রস্থান না করে ফেরতের স্থিতি নির্ধারণ করার কোনও উপায় আছে কি?