bash একটি সাব-শেল প্রসঙ্গে পাইপলাইনের ডানদিকে চালিত করে , সুতরাং ভেরিয়েবলগুলিতে পরিবর্তন (যা যা readকরে) সংরক্ষণ করা হয় না - কমান্ডের শেষে সাব-শেল করলে তারা মারা যায়।
পরিবর্তে, আপনি প্রক্রিয়া বিকল্প ব্যবহার করতে পারেন :
$ read a b dump < <(echo 1 2 3 4 5)
$ echo $b $a
2 1
এই ক্ষেত্রে, readআমাদের প্রাথমিক শেলের মধ্যে চলছে, এবং আমাদের আউটপুট-উত্পাদনকারী কমান্ড সাব-শেলের মধ্যে চলে। <(...)সিনট্যাক্স সৃষ্টি একটি subshell এবং একটি নল, যা আমরা ইনপুট মধ্যে পুনর্নির্দেশ তার আউটপুট সংযোগ readসাধারণ সঙ্গে <অপারেশন । কারণ readআমাদের মূল শেলটিতে ভেরিয়েবলগুলি সঠিকভাবে সেট করা আছে।
একটি মন্তব্যে নির্দেশিত হিসাবে, যদি আপনার লক্ষ্যটি কোনওভাবে কোনও স্ট্রিংকে ভেরিয়েবলগুলিতে বিভক্ত করা হয় তবে আপনি এখানে স্ট্রিং ব্যবহার করতে পারেন :
read a b dump <<<"1 2 3 4 5"
আমি ধরে নিচ্ছি এর চেয়ে আরও অনেক কিছু আছে, তবে এটি না থাকলে এটি আরও ভাল বিকল্প।