शीर्षक कहता है, मैं यह निर्धारित करने की कोशिश कर रहा हूं कि मेरी बैश स्क्रिप्ट को पैरामीटर के रूप में निर्देशिका में पूर्ण पथ या रिश्तेदार फ़ाइल प्राप्त होती है या नहीं। जब मैं या तो एक पूर्ण पथ या निरपेक्ष पथ के साथ मेरी स्क्रिप्ट चलाने
#!/bin/bash
DIR=$1
if [ "$DIR" = /* ]
then
echo "absolute"
else
echo "relative"
fi
यह कहते हैं::
कुछ कारणों के लिए निम्नलिखित मेरे लिए काम नहीं लगता है
./script.sh: line 5: [: too many arguments
relative
कुछ के लिए कारण मैं इस बग को समझने के लिए प्रतीत नहीं कर सकता। कोई विचार?
यदि मैं यह पथ '/ home/user/folder1 /../ folder2' देता हूं जो सापेक्ष है तो यह आउटपुट करेगा कि यह पूर्ण है जो गलत है। –
एक रिश्तेदार पथ वह है जो वर्तमान कार्यशील निर्देशिका के आधार पर अलग-अलग फ़ाइलों को संदर्भित करता है। वह पथ हमेशा '/ home/user/folder2' को संदर्भित करता है, इसलिए यह एक पूर्ण पथ है। '..' सिर्फ शेल शॉर्टकट नहीं है; यह निर्देशिका प्रणाली के माता-पिता के लिए फ़ाइल सिस्टम में एक बहुत ही वास्तविक प्रविष्टि है। – chepner