मुझे मेरे लिए अजीब व्यवहार मिला है, जिसे मैं समझा नहीं सकता।सबहेल से आउटपुट और आउटपुट से स्थानीय चर
function prepare-archive {
blah-blah-blah...
_SPEC_FILE=$(check-spec-file "$_GIT_DIR/packaging/")
exit $?
blah-blah-blah...
}
का मतलब है मैं मूल्य जो मैं उम्मीद मिलती है:: के रूप में मैं चर को local
परिभाषा जोड़ने जैसे ही
bash -x ./this-script.sh:
++ exit 1
+ _SPEC_FILE='/home/likern/Print/Oleg/print-service/packaging/print-service.spec
/home/likern/Print/Oleg/print-service/packaging/print-service2.spec'
+ exit 1
:
local _SPEC_FILE=$(check-spec-file "$_GIT_DIR/packaging/")
मैं निम्नलिखित मिल निम्नलिखित कोड काम ठीक है :
bash -x ./this-script.sh:
++ exit 1
+ local '_SPEC_FILE=/home/likern/Print/Oleg/print-service/packaging/print-service.spec
/home/likern/Print/Oleg/print-service/packaging/print-service2.spec'
+ exit 0
$:~/MyScripts$ echo $?
0
प्रश्न: क्यों? क्या हुआ है? क्या मैं सबहेल से आउटपुट को local
वैरिएबल पर पकड़ सकता हूं और सबहेल के रिटर्न वैल्यू को विश्वसनीय रूप से देख सकता हूं?
पीएस: prepare-archive
मुख्य खोल स्क्रिप्ट में कहा जाता है। exit
check-spec-file
फ़ंक्शन से prepare-archive
फ़ंक्शन से दूसरा है - यह फ़ंक्शन स्वयं मुख्य शेल स्क्रिप्ट से निष्पादित किया गया है। मैं check-spec-file
से exit 1
पर मान वापस लौटाता हूं, फिर यह मान exit $?
पर पास करता है। इस प्रकार मैं उम्मीद करता हूं कि वे वही होना चाहिए।
किस संदर्भ में 'तैयार-संग्रह' कहा जाता है? '++ निकास 1' आपके द्वारा दिखाए गए किसी भी कोड से फिट नहीं है। – chepner