বাশ ভেরিয়েবলে জিকিউ আউটপুট সেট করা


18

আমি এই জাতীয় বিশ্রাম এপিআই থেকে জেএসএনকে ফিরে পেতে কার্ল ব্যবহার করছি:

content=$(curl -s  -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
echo "${content}"| jq -r '.data.value'

যা আমার প্রয়োজনীয় মান উত্পাদন করে। যাহোক; যখন আমি উপরের কোডটি দেখতে দেখতে এটি পরিবর্তন করব:

content=$(curl -s  -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$(echo "${content}"| jq -r '.data.value')
echo $username

কিছুই উত্পাদন করে না। আমি কীভাবে এটি পরিবর্তন করতে পারি যাতে ব্যবহারকারীর নাম ভেরিয়েবল আউটপুট বরাদ্দ হয়ে যায়?

উত্তর:


14

এতে কোডটি পরিবর্তন করা হয়েছে এবং এটি কাজ করেছে:

content=$(curl -s  -X GET -H "Header:Value" http://127.0.0.1:8200/etc) 
username=$( echo jq -r  '.data.value' <<< "${content}" ) 
echo ${username}

1
আমি পেতে Syntax error: redirection unexpected(সহ বা ছাড়া echo। অন্য উত্তর প্রস্তাব দেওয়া যেমন
ম্যাট বি

2
@ ম্যাটবি, আপনি <<<ছাই ভিত্তিক শেলটিতে অপারেটরটি ব্যবহার করার চেষ্টা করছেন যা এটি সমর্থন করে না। যে কোনও ক্ষেত্রে, এমনকি zsh বা ব্যাশে যা অপারেটরটিকে সমর্থন করে, কোডটি কোনও অর্থ দেয় না। এটি স্ট্যান্ডিনটি পুনর্নির্দেশ করে echoযার মধ্যে এটি পড়ে না। এই উত্তরটি কীভাবে 10 টি upvotes অর্জন করতে সক্ষম হয়েছিল তা অবাক করা যায়।
স্টাফেন চ্যাজেলাস

4

এটি কেবলমাত্র তখনই কাজ করে যদি আপনি দ্বিতীয় লাইনে "প্রতিধ্বনি" হারিয়ে ফেলেন।

content=$(curl -s  -X GET -H "Header:Value" http://127.0.0.1:8200/etc) 
username=$( echo jq -r  '.data.value' <<< "${content}" ) 
echo ${username}

0

আপনি এটিকে ওয়ান লাইনারে রূপান্তর করতে পারেন:

username=$( curl -s  -X GET -H "Header:Value" http://127.0.0.1:8200/etc |  jq -r  '.data.value' ) 
echo ${username}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.