আমি সত্যিই @ মিশেল পরামর্শটি পছন্দ করি। কখনও কখনও, আপনি BASH ব্যবহার করে সেই নির্দিষ্ট সার্ভারে কোনও কার্য সম্পাদন করতে কেবল কিছু ভেরিয়েবলের মান বের করতে পারেন। সুতরাং, পছন্দসই ভেরিয়েবলগুলি জানা আছে। এই পদ্ধতির সাহায্যে চলমান প্রতি ভ্যারিয়েবলের মান নির্ধারণ করতে বা একাধিক ভেরিয়েবলের সাথে রিড স্টেটমেন্ট ব্যবহার করা বা একাধিক ভেরিয়েবলের সাথে পঠন বিবৃতি ব্যবহার করা বা একাধিক কলকে এড়ানো বা একাধিক কলগুলি এটিকে ব্যবহার করার উপায় যা মান ভরাট হতে পারে (এটি আমার সমস্যা ছিল)
আমার আগের পদ্ধতির যে নেতৃত্ব একটি মান স্থানান্তর ত্রুটি যদি .svID [] .ID = "" (হতে হবে SV পাবেন slotID মান
-rd '\n' getInfo sv slotID <<< $(jq -r '(.infoCMD // "no info"), (.svID[].ID // "none"), (._id // "eeeeee")' <<< $data)
আপনি যদি কার্ল ব্যবহার করে অবজেক্টটি ডাউনলোড করেন তবে ডেটা অ্যারে থেকে এক্সট্রাক্ট ডেটা হিসাবে বন্ধুত্বপূর্ণ নামের কিছু ভেরিয়েবলের নামকরণের জন্য আমার পদ্ধতিটি এখানে
ইভাল এবং ফিল্টার ব্যবহার করা এক লাইনের সাহায্যে সমস্যার সমাধান করবে এবং পছন্দসই নামের সাথে ভেরিয়েবল তৈরি করবে
eval "$(jq -r '.[0] | {varNameExactasJson, renamedVar1: .var1toBeRenamed, varfromArray: .array[0].var, varValueFilter: (.array[0].textVar|ascii_downcase)} | to_entries | .[] | .key + "=\"" + (.value | tostring) + "\""' <<< /path/to/file/with/object )"
এই ক্ষেত্রে সুবিধাটি হ'ল এটি প্রথম ধাপে সমস্ত পছন্দসই ভেরিয়েবলকে ফিল্টার করবে, নাম পরিবর্তন করবে, ফর্ম্যাট করবে। সেখানে আছে তা পর্যবেক্ষণ করুন। [0] | এটি যদি খুব সাধারণ হয় তবে উত্সটি যদি কোনও জিইএস টি ব্যবহার করে কোনও রেস্ট্রুল এপিআই সার্ভার থেকে থাকে, প্রতিক্রিয়া ডেটা হিসাবে:
[{"varNameExactasJson":"this value", "var1toBeRenamed: 1500, ....}]
যদি আপনার ডেটা কোনও অ্যারের থেকে না হয়, যেমন। একটি বিষয় যেমন:
{"varNameExactasJson":"this value", "var1toBeRenamed: 1500, ....}
শুধু প্রাথমিক সূচকটি সরিয়ে ফেলুন:
eval "$(jq -r '{varNameExactasJson, renamedVar1: .var1toBeRenamed, varfromArray: .array[0].var, varValueFilter: (.array[0].textVar|ascii_downcase)} | to_entries | .[] | .key + "=\"" + (.value | tostring) + "\""' <<< /path/to/file/with/object )"
এটি একটি পুরানো প্রশ্ন, তবে আমি ভাগ করে নিতে অনুভব করেছি, কারণ এটি খুঁজে পাওয়া শক্ত ছিল
declare -- “$key=$value”
এবং$AUTHOR
কোনও অ্যারে ছাড়াই মূলর মতো কাজ করতে পারেন । এটি এখনও স্পষ্টর চেয়ে নিরাপদ, যদিও পরিবর্তনPATH
বা কোনও কিছু এখনও এই সংস্করণটির তুলনায় এত কম সম্ভব।