मेरे पास एक ऐसी स्क्रिप्ट है जिसमें कई इनपुट फ़ाइलें हैं, आम तौर पर ये मानक स्थान पर संग्रहीत डिफ़ॉल्ट हैं और स्क्रिप्ट द्वारा बुलाए जाते हैं।बाश कमांड लाइन तर्क चर के लिए डिफ़ॉल्ट को प्रतिस्थापित कर रहे हैं
हालांकि कभी-कभी इसे परिवर्तित इनपुट के साथ चलाने के लिए आवश्यक है।
स्क्रिप्ट में मैंने वर्तमान में 3 चर $ ए $ बी और $ सी कहा है, अब मैं इसे एक डिफ़ॉल्ट डिफ़ॉल्ट $ बी के साथ चलाने के लिए चाहता हूं, कल मैं इसे एक डिफ़ॉल्ट डिफ़ॉल्ट $ ए और $ बी के साथ चलाने के लिए चाहता हूं ।
मैं कैसे आदेश पंक्ति तर्क पार्स करने के लिए पर चारों ओर एक नज़र पड़ा है: How do I parse command line arguments in Bash?
लेकिन मैं कमांड लाइन से कुछ निर्धारित समय से कुछ aruguments होने से निपटने के लिए कैसे यकीन नहीं है?
मैं अपने ही सवाल का जवाब देने के लिए पर्याप्त प्रतिनिधि है न लेकिन मैं एक समाधान है:
https://stackoverflow.com/a/4610469/2339623
#!/bin/bash
a=input1
b=input2
c=input3
while getopts "a:b:c:" flag
do
case $flag in
a) a=$OPTARG;;
b) b=$OPTARG;;
c) c=$OPTARG;;
esac
done
क्षमा याचना मैं स्पष्ट रूप से के रूप में अच्छी तरह से के रूप में मैंने सोचा था कि खोज नहीं की थी ...
आप इस उद्देश्य के लिए 'getopts' का उपयोग कर सकते हैं। कई ट्यूटोरियल हैं, जैसे http://aplawrence.com/Unix/getopts.html कुछ शुरुआत के लिए उपयोगी हो सकता है। – fedorqui
धन्यवाद, मैंने इसे लिंक किए गए प्रश्नों पर देखा। मैं सोच रहा था कि कमांड तर्कों को ओवरराइट करने के लिए कुछ मानक तरीका है या नहीं। उदाहरण के लिए जब पायथन में फ़ंक्शंस को परिभाषित करना डिफ़ॉल्ट मान सेट करना संभव है। मैं देख सकता हूं कि अगर एक चेक के साथ मैं डिफ़ॉल्ट रूप से कमांड लाइन तर्क के साथ प्रतिस्थापित कर सकता हूं, लेकिन यह सुनिश्चित करने के लिए कोई मानक तरीका था तो अनिश्चित था? – Lanrest