मैं ओएस एक्स पर जावा प्रोग्राम लॉन्च करने के लिए एक सरल बैश स्क्रिप्ट बनाना चाहता हूं। फ़ाइल के नाम, फ़ाइल पथ, और तत्काल काम करने वाले फ़ोल्डर में सभी रिक्त स्थान हैं। जब मैं यह कर:ओएस एक्स बैश: डायरनाम
#!/bin/sh
cd `dirname $0`
मैं
usage: dirname path
मिल मैं भी अलग-अलग स्थानों के सभी प्रकार में उद्धरण डालने की कोशिश की है। सबसे विस्तृत उदाहरण
cd "`dirname \"$0\"`"
कुछ भी काम नहीं किया है। मुझे या तो त्रुटि संदेश या उस गूढ़ "उपयोग: dirname पथ" संदेश मिलता है।
अन्य विधियां जो काम कर सकती हैं?
संपादित करें: इस किसी के लिए भी एक मुद्दा है, लेकिन मेरे लिए तो यह सिर्फ अपनी बॉक्स होना चाहिए नहीं लगता है। मैं नीचे अपनी पोस्ट स्वीकार करने जा रहा हूं क्योंकि यह एकमात्र समाधान है जो इस विशिष्ट समस्या के लिए काम करता है। हालांकि मैं निश्चित रूप से ऐसे समाधानों को उखाड़ फेंक रहा हूं जो हर किसी के लिए काम कर रहे हैं और वास्तव में हर किसी की मदद की सराहना करते हैं।
'$ 0' उपज' क्या करता है? dirname $ 0 के मूल्य के बारे में कुछ विशिष्ट के साथ एक समस्या हो सकती है।क्या आपने स्क्रिप्ट के साथ एक अलग निर्देशिका में इसे चलाने का प्रयास किया है? – fbrereto
आपका दूसरा उदाहरण मेरे लिए छह स्तरों की निर्देशिका के साथ काम करता है जहां हर दूसरे पूर्वजों के नाम पर कम से कम एक स्थान होता है। – Chuck
कभी भी dirname के manpage को देखने का प्रयास करें? –