আপনি যদি কোনও ভেরিয়েবলের মধ্যে এইচটিটিপি স্থিতি কোডটি ক্যাপচার করতে চান তবে তবুও সামগ্রীটি STDOUT- এ পুনর্নির্দেশ করতে পারেন, আপনাকে অবশ্যই দুটি STDOUT তৈরি করতে হবে। প্রক্রিয়া প্রতিস্থাপন> () এবং কমান্ড প্রতিস্থাপন $ () দিয়ে আপনি এটি করতে পারেন ।
প্রথমত, একটি ফাইল বর্ণনাকারী তৈরি 3
আপনার বর্তমান প্রক্রিয়া 'stdout- এ সঙ্গে জন্য exec 3>&1
।
তারপরে, -o
কমান্ড প্রতিস্থাপন ব্যবহার করে অস্থায়ী ফিফোতে প্রতিক্রিয়া সামগ্রীটি পুনর্নির্দেশের জন্য কার্লের বিকল্পটি ব্যবহার করুন এবং তারপরে সেই কমান্ড প্রতিস্থাপনের মধ্যে আউটপুটটিকে আপনার বর্তমান প্রক্রিয়াতে পুনরায় ডাইরেক্ট করুন ফাইল ডেস্ক্রিপ্টারের 3
সাহায্যে -o >(cat >&3)
।
এগুলিকে একসাথে রাখা bash
3.2.57(1)-release
(এর জন্য মানক macOS
):
# creates a new file descriptor 3 that redirects to 1 (STDOUT)
exec 3>&1
# Run curl in a separate command, capturing output of -w "%{http_code}" into HTTP_STATUS
# and sending the content to this command's STDOUT with -o >(cat >&3)
HTTP_STATUS=$(curl -w "%{http_code}" -o >(cat >&3) 'http://example.com')
নোট করুন যে স্যামকে নীচের মন্তব্যে উল্লিখিত/bin/sh
হিসাবে এটি কাজ করে না ।