গ্রেপের আউটপুট / দেব / নাল থেকে পুনর্নির্দেশের বিন্দুটি কী?


24

এই লাইনটি বিবেচনা করুন:

${libdir}/bin/licenseTool check "${SERIAL}" "${VERSION}" "${PRODUCT}" ${libdir} | grep '^200' >/dev/null

আউটপুটে প্যাটার্ন খুঁজছেন যদি ফল করে লাভ কী হলো যে দূরে নিক্ষিপ্ত হয়?

এবং, যদি এর মতো কোনও লাইন কোনও ব্যাশ স্ক্রিপ্টে শেষ জিনিস হিসাবে উপস্থিত হয়, তবে এর প্রস্থান মূল্যটি স্ক্রিপ্টের কলারে ফিরে আসে, বা উপেক্ষা করা হয়? (আমি অনুমান করতে পারি যে আমরা এটি পার্শ্ব প্রতিক্রিয়াগুলির জন্যই সম্পন্ন করাতে পারি বা কলকারীকে কোনওভাবে কিছু ফিরিয়ে দেয় ume)

উত্তর:


29

আপনার সন্দেহ সঠিক; স্ক্রিপ্টের শেষ কমান্ডের প্রস্থান স্থিতি কলিং পরিবেশে পাঠানো হবে। সুতরাং উত্তরটি হ'ল এই স্ক্রিপ্টটি প্রস্থান স্থিতি 0 ফিরিয়ে দেবে যদি grepডেটাতে কিছুটা মিলে যায় তবে উপস্থিতি না থাকলে স্থিতি 1 এবং কোনও ত্রুটি দেখা দিলে প্রস্থান স্থিতি 2।


27

বিন্দু grepযে দূরে নিক্ষিপ্ত হয় পিং আউটপুট লেখক শুধুমাত্র ফেরত অবস্থা চায় grep। তিনি / সে কেবল জানতে চান যে কোনও প্যাটার্নটি মিলেছে কি না। আপনার ক্ষেত্রে, grepপূর্ববর্তী কমান্ডের আউটপুটে কোনও লাইন রয়েছে কিনা তা শেষ চেক করে 200

আধুনিক পসিক্স সিস্টেমে, আপনি এটিকে পুনর্নির্দেশ না করে গ্রেপ-কি দিয়ে এগুলি সব করতে পারেন /dev/null:

... | grep -q '^200'

একটি নোট যে ব্যবহারের grep -qএকটি সামান্য পার্শ্ব প্রতিক্রিয়া আছে, স্টাফেন চ্যাজেলাস তার মন্তব্যে উল্লেখ করার জন্য ধন্যবাদ । grep -qএটি প্রথম ম্যাচটি খুঁজে licenseToolপাওয়ার সাথে সাথে grepপ্রস্থান করে, যদি এখনও বাইরে থেকে কিছু লেখা থাকে তবে তা একটি সাইনপাইপ পাবে।


2
এবং grep -qকম সিপিইউ ব্যবহার করে
স্কেপেইরেন

5
এই জিনিসগুলি যেমন চলছে, grep -qতুলনামূলকভাবে সম্প্রতি যুক্ত হয়েছিল; এর > /dev/nullপরিবর্তে প্রচুর স্ক্রিপ্টগুলি এখনও ব্যবহার করা হয় কারণ বরফযুগে আপনি যা পেয়েছিলেন সেটাই ছিল (যা 1995)।
zwol

3
আপনার প্রথম বাক্যে কি ক্রিয়াবিভাব নেই?
আওয়ামী লীগের

জিএনইউ ম্যানপেজ থেকে "গ্রেপ-কিউ" এবং "গ্রেপ> / ডিভ / নাল" এর মধ্যে আরেকটি বৈষম্য: "তবে, -ক বা --কিউয়েট বা - সাইলেন্ট ব্যবহার করা হয় এবং একটি লাইন নির্বাচিত হলে, প্রস্থান স্থিতি হ'ল 0 এমনকি ত্রুটি ঘটেছে। "
চিহ্নিত করুন

যদি ডকুমেন্টেশন সঠিক থাকে "প্রস্থান স্থিতি 0 হয় তবুও ত্রুটি দেখা দেয়" ... আমি মনে করি -qবিকল্পটি উপযুক্ত বলে মনে হচ্ছে না ... কারণ আপনি প্রস্থান স্থিতি পরীক্ষা করে ত্রুটি সম্পর্কে এটি জানতে চান।
ট্রেভর বয়েড স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.