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"
আমি ধরে নিচ্ছি এর চেয়ে আরও অনেক কিছু আছে, তবে এটি না থাকলে এটি আরও ভাল বিকল্প।