मैं फॉर्म में एक कस्टम बाइनरी टाइम कर रहा हूं: ./prog --opt1=arg1 --opt2=arg2 --opt3="arg3"
यह आवश्यक है कि तीसरे विकल्प में एक उद्धृत तर्क हो। एक स्क्रिप्ट में मैं सभी विकल्पों को सहेजता हूं:
exec=./prog
opts="--opt1=arg1 --opt2=arg2 --opt3=\"arg3\""
जब मैं कार्यक्रम के समय की कोशिश करता हूं, तो मुझे अपने प्रोग्राम को आर्गेज्म देने में त्रुटि हो रही है। मैं यह अनुमान लगा रहा हूं क्योंकि यह अंतिम आरजी के रूप में देखा जा रहा है। के उत्पादन /bin/time:
\bin\time -v $exec $opts
Error parsing args (मेरे कार्यक्रम से)
Command being timed: "./prog --opt1=arg1 --opt2=arg2 --opt3="arg3""
हालाँकि जब मैं सिर्फ कॉपी और पेस्ट करता हूं, तो कमांड का दावा क्या है, यह ठीक चलता है:
./prog --opt1=arg1 --opt2=arg2 --opt3="arg3" - ठीक है
क्या /bin/timeकर रहा है और मैं इसे कैसे ठीक कर सकता हूं? मुझे लगता है कि यह उद्धरण के साथ क्या करना है, जैसे कि शायद यह कुछ या कुछ चलाता है। मुझे यकीन नहीं है कि इसके बारे में क्या करना है।
evalऐसा करने का गलत तरीका है; इसमें अप्रत्याशित (और कभी-कभी समझ से बाहर) बग पैदा करने के लिए एक अच्छी-खासी प्रतिष्ठा है। BashFAQ # 50 देखें : मैं एक चर में एक कमांड डालने की कोशिश कर रहा हूं, लेकिन जटिल मामले हमेशा विफल होते हैं! (और कई पिछले उत्तर जो इसे लिंक करते हैं) बेहतर विचारों के लिए।