शेल स्क्रिप्ट फ़ंक्शन का अनुसरण करना क्यों विफल हो रहा है?


0
_exec()
{
    CMD="$1"
    echo "Executing command: $CMD"
    EXEC_OUT=`$CMD`
    EXEC_RET=$?
}
_exec  "hostname|cut  -d\".\" -f1 "
SHORT_NAME=$EXEC_OUT
if [ $EXEC_RET -ne 0 ];then
    echo "Unable to determine shortname of server"
else
    echo $EXEC_OUT
fi

1
सुपरयूज़र में आपका स्वागत है। आपको क्या त्रुटि हो रही है? आप फ़ंक्शन को कैसे कहते हैं? आपने पहले से क्या करने की कोशिश की है?
mtak

ये मेरे डिबग परिणाम हैं?
नीरज

+ _exec 'hostname | cut -d "।" -f1 '+ CMD =' hostname | cut -d "।" -f1 '+ गूंज' कार्यकारी आदेश: hostname | cut -d "।" -f1 'कार्यकारी आदेश: hostname | cut -d "।" -f1 ++ 'hostname | cut' '-d "।" -f1 te.sh: line 5: hostname | cut: कमांड नहीं मिला + EXEC_OUT = + EXEC_RET = 127 + SHORT_NAME = +' '127 -ne 0 ']' + इको 'सर्वर की शॉर्टनेम निर्धारित करने में असमर्थ' सेवा का शॉर्टनेम निर्धारित करने में असमर्थ
नीरज

जब फ़ंक्शन $ CMD को निष्पादित करने के लिए डालता है तो वह 'hostname | cut' -d 'डालता है। "' -f1 te.sh
Niraj

मेरा सुझाव है कि आप अपने मूल प्रश्न में इन उत्तरों को पोस्ट करें और प्रारूपण के बारे में सहायता अनुभाग में पढ़ें।
एमटी

जवाबों:


0

आपको अपने निष्पादन कार्य पर अपने cmd का मूल्यांकन करने की आवश्यकता है।

EXEC_OUT=`eval $CMD`

हालांकि इसके बारे में निश्चित नहीं है। मुझे लगता है कि यह एक एकल चर में कई कमांड हैं क्योंकि यह है। शायद कोई और प्रयोग करने वाला व्यक्ति इसकी पुष्टि कर सकता है।

Eval मैन पेज देखें ।

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