मेरे पास एक सीजीआई में उपयोग की जाने वाली एक बैश स्क्रिप्ट है। सीजीआई यूआरएल में ?
के बाद सब कुछ पढ़ कर $ QUERY_STRING पर्यावरण चर सेट करता है। उदाहरण के लिए, http://example.com?a=123&b=456&c=okQUERY_STRING=a=123&b=456&c=ok
सेट करता है।
b=$(echo "$QUERY_STRING" | sed -n 's/^.*b=\([^&]*\).*$/\1/p' | sed "s/%20/ /g")
जो $ करने के लिए ख जो कुछ b
के लिए $ QUERY_STRING में पाया गया था सेट हो जाएगा:
कहीं मैं निम्नलिखित कुरूपता पाया। हालांकि, मेरी लिपि में दस से अधिक इनपुट पैरामीटर हैं। क्या $ QUERY_STRING में मानकों को स्वचालित रूप से बाश द्वारा उपयोग किए जाने वाले पर्यावरण चर में कनवर्ट करने का कोई आसान तरीका है?
हो सकता है कि मैं सिर्फ किसी प्रकार की पाश के लिए एक का उपयोग करेंगे, लेकिन अगर स्क्रिप्ट बहुत चालाक स्वचालित रूप से प्रत्येक पैरामीटर पता लगाने के लिए और शायद एक सरणी है कि कुछ इस तरह दिखता बना था तो यह और भी बेहतर होगा:
${parm[a]}=123 ${parm[b]}=456 ${parm[c]}=ok
मैं ऐसा करने के लिए कोड कैसे लिख सकता हूं?
मैं सिर्फ देखा है कि मैं वास्तव में बैश 3. पर अटक कर रहा हूँ किसी को भी करता है एक सरल, सुरक्षित समाधान है कि साहचर्य सरणियों शामिल नहीं होगा है? – User1
सहयोगी सरणी के विकल्प के लिए मेरा संपादित उत्तर देखें (यह भी सुनिश्चित करें कि मैंने जिस पृष्ठ से लिंक किया है ([BashFAQ/006] (http://mywiki.wooledge.org/BashFAQ/006)) –
यह लिंक मदद करेगा आप आसानी से अपनी समस्या को हल करने के लिए http://stackoverflow.com/questions/17021640/how-to-extract-the-data-using-sed-command – amar