ডান ব্যাখ্যা ইতিমধ্যে দেয়া হয়েছে jsbillings এবং geekosaur , কিন্তু আমার একটু যে প্রসারিত করা যাক।
বাশ সহ বেশিরভাগ শেলগুলিতে, পাইপলাইনের প্রতিটি পাশ একটি সাবশেলে চলে, সুতরাং শেলের অভ্যন্তরীণ অবস্থার কোনও পরিবর্তন (যেমন ভেরিয়েবলগুলি নির্ধারণ করা) পাইপলাইনের সেই অংশে সীমাবদ্ধ থাকে। সাব-শেল থেকে আপনি কেবলমাত্র যে তথ্যটি পেতে পারেন তা হ'ল এটি আউটপুট (স্ট্যান্ডার্ড আউটপুট এবং অন্যান্য ফাইল বর্ণনাকারীদের কাছে) এবং এর প্রস্থান কোড (যা 0 এবং 255 এর মধ্যে একটি সংখ্যা)। উদাহরণস্বরূপ, নিম্নলিখিত স্নিপেট 0:
a=0; a=1 | a=2; echo $a
কেএসএসে (এটিএন্ডটি কোড থেকে প্রাপ্ত ভেরিয়েন্টস, পিডিক্স / এমএক্সএইচ রূপগুলি নয়) এবং জেডএস-এ, পাইপলাইনের শেষ আইটেমটি প্যারেন্ট শেলের মধ্যে কার্যকর করা হয়। (POSIX উভয় আচরণের অনুমতি দেয়)) সুতরাং উপরের স্নিপেটটি 2 টি প্রিন্ট করে।
পাইপলাইনে কিছুক্ষণের লুপের ধারাবাহিকতা (বা পাইপলাইনের ডানদিকে আপনার যা কিছু আছে তবে কিছুক্ষণ লুপ আসলে এখানে প্রচলিত রয়েছে) অন্তর্ভুক্ত করা একটি দরকারী প্রতিভা:
cat junk | {
while read var ; do x=55 ; done
echo x=$x
}