/ बिन / श: `कुछ-फ़ंक्शन 'के लिए फ़ंक्शन परिभाषा आयात करने में त्रुटि


14

CVE-2014-6271 सुरक्षा समस्या के लिए अपडेट को अपडेट करते समय मुझे इस त्रुटि का सामना करना पड़ा:

# yum update bash
Running transaction (shutdown inhibited)
Updating   : bash-4.2.47-4.fc20.x86_64
/bin/sh: error importing function definition for `some-function'

जवाबों:


17

[1 टिप्पणी के बाद से संपादित किया गया: @chepner - धन्यवाद!]

/ बिन / बैश फ़ंक्शन नामों में हाइफ़न की अनुमति देता है, / बिन / श (बॉर्न शेल) नहीं करता है। यहां, अपमानजनक "कुछ-फ़ंक्शन" को बैश द्वारा निर्यात किया गया था, और बैश को यम कहा जाता है जिसे / बिन / श कहा जाता है जिसने ऊपर त्रुटि की सूचना दी।

तय: नाम बदलने का कार्य हाइफ़न नहीं है

मैन बैश का कहना है कि बैश पहचानकर्ता शामिल हो सकते हैं: "केवल अल्फ़ान्यूमेरिक वर्ण और अंडरस्कोर"

/ बिन / श त्रुटि बहुत अधिक स्पष्ट है:

some-function () { :; }

श: `कुछ-कार्य ': एक मान्य पहचानकर्ता नहीं


ध्यान दें कि bash, एक फ़ंक्शन नाम में एक हाइफ़न की अनुमति है, बस एक पैरामीटर नाम में नहीं।
शेपनर

@chepner अंडरस्कोर के बारे में क्या? क्या फ़ंक्शन नाम और पैरामीटर नाम में अंडरस्कोर की अनुमति है?
BH2017

मेरे सिस्टम बैश 4 पर फंक्शन के नामों को हाइफ़न रखने की अनुमति देता है, लेकिन बैश 3 नहीं है - मैं ओपी के सिस्टम / बिन / श को बैश 3 मानता हूं, और बिन / बैश को बैश 4 है
मार्क फॉक्स

2

बदलें / से समारोह नाम तय "foo-bar"करने के लिए"foo_bar"

यह नामकरण सम्मेलन है कि बैश ठीक है, जहां नहीं है।

"_" (हाइफ़न / डैश / माइनस) को "_" (अंडरस्कोर) से बदलें, और त्रुटि ठीक हो जाती है, और कोड बैश और दोनों पर काम करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.