/ / उद्धरण चिह्नों के साथ तर्कों को कैसे पारित किया जाए - बैश, गुण, विकल्प, उद्धरण-चिह्न

उद्धरण चिह्नों के साथ तर्कों को तर्क के रूप में कैसे पास करें - बैश, विशेषताएँ, विकल्प, उद्धरण-चिह्न

मेरे पास एक स्क्रिप्ट है जो कुछ विकल्पों के साथ C ++ एप्लिकेशन चलाता है। मैं जो करना चाहता हूं वह स्क्रिप्ट की विशेषता के रूप में C ++ एप्लिकेशन के विकल्प देना है।

options=$1
...
./app $options

समस्या यह है कि जब मैं जैसे विकल्पों को पारित करने की कोशिश करता हूं

./script "-a -C "9.626 0.262 8.266""

-C विकल्प की विशेषता पूरे स्ट्रिंग के बजाय सिर्फ "" 9.626 "है। किसी भी विचार को कैसे हल किया जाए? :) धन्यवाद।"

उत्तर:

जवाब के लिए 0 № 1

आपको एक सरणी का उपयोग करना होगा।

options=( -a -C "9.626 0.262 8.266" )
./script "${options[@]}"

के भीतर script, $1 है -a, $2 है -C, तथा $3 है 9.626 0.262 8.266। (सूचना उद्धरण का हिस्सा नहीं हैं $3; वे केवल तर्क को निर्धारित करते समय व्हॉट्सएप की सुरक्षा के लिए उपयोग किए जाते हैं script। संभवतया, आप तीनों तर्कों को किसी अन्य कमांड में पारित करने का इरादा रखते हैं, और आप ऐसा करेंगे

other_command "$1" "$2" "$3"

या अधिक आम तौर पर, मनमाने ढंग से तर्कों को समायोजित करने के लिए

other_command "$@"