2010-12-19 11 views
6

मैं मछली के खोल का उपयोग कर एसबीटी चलाने की कोशिश कर रहा हूं।मछली का उपयोग करते समय एसबीटी छोड़ने क्यों है?

#!/usr/local/bin/fish 
java -Xmx512M -jar (dirname (status -f))/sbt-launch-0.7.4.jar "$argv" 

जब मैं एसबीटी फोन मैं एसबीटी इस्तीफा तो निम्नलिखित

[info] Building project MyProject 1.0 against Scala 2.8.1 
[info] using MyProject with sbt 0.7.4 and Scala 2.7.7 
[info] 
[info] Total session time: 1 s, completed Dec 19, 2010 4:29:46 PM 
[success] Build completed successfully. 

मिलता है। क्यूं कर? क्या यह सिर्फ आदेशों की प्रतीक्षा नहीं करनी चाहिए?

संभावित रूप से संबंधित नोट पर, मुझे यकीन है कि मुझे # करने के लिए उपयोग नहीं किया गया था! [खोल] पहली पंक्ति पर जब मैं बैश का उपयोग कर रहा था। क्या बदल गया है

अद्यतन: जब बराबर की पटकथा लिखनी बैश सब कुछ का उपयोग करने के ठीक काम करता है, एसबीटी निर्माण नहीं करता है तो

#!/bin/bash 
java -Xmx512M -jar `dirname $0`/sbt-launch-0.7.4.jar "[email protected]" 
+0

'मछली' स्क्रिप्ट में 'dirname (status -f)' आउटपुट क्या है? क्या उस निर्देशिका में 'sbt-launch-0.7.4.jar' है? सामान्य रूप से, स्क्रिप्ट स्थित होने के समान ही निर्देशिका से चीजों को चलाने का प्रयास करना एक अच्छा विचार नहीं है। यह अक्सर काम नहीं करता है। आपको एक निश्चित स्थान का उपयोग करना चाहिए: '/ path/to/sbt-launch-0.7.4.jar'। क्या आप अपने इंटरैक्टिव खोल के रूप में 'मछली' चला रहे हैं? क्या कोई कारण है कि इस तरह की एक साधारण लिपि को 'मछली' स्क्रिप्ट होना चाहिए, न कि 'sh' स्क्रिप्ट'? –

+0

हाँ, जार एक ही डीआईआर में स्क्रिप्ट के रूप में है, यहां निर्देशों के अनुसार http://code.google.com/p/simple-build-tool/wiki/Setup अच्छे अंक, शायद मुझे बस बैश का उपयोग करना चाहिए (इस पर नया, मछली की तरह, और शायद दूर ले जाया गया है) – Pengin

उत्तर

3

आप एक कुटिया उपयोग नहीं करते हैं (#!/usr/local/bin/fish अपने उदाहरण में) छोड़ दिया, एक स्क्रिप्ट आपके सिस्टम पर डिफ़ॉल्ट खोल के साथ चलती है, जो /bin/sh होने की संभावना है।

यदि आप #!/bin/sh या #!/bin/bash का उपयोग करके अपनी स्क्रिप्ट चलाते हैं तो क्या यह आपके द्वारा अपेक्षित तरीके से काम करता है?

आपकी लिपि में कुछ भी नहीं है जो इस बात को प्रभावित करेगा कि चीजें अन्य गोले से अलग कैसे काम करती हैं। मुझे समझ में नहीं आता कि आपकी स्क्रिप्ट आपके द्वारा किए जा रहे कार्यों से संबंधित है (अधिकतर क्योंकि मैं एसबीटी से अपरिचित हूं)। आपकी लिपि का नाम क्या है? इसे क्या कह कर पुकारते हैं? आप एसबीटी कैसे कॉल कर रहे हैं?

+0

स्क्रिप्ट को ~/bin में 'sbt' कहा जाता है, और इन निर्देशों पर आधारित है http://code.google.com/p/simple-build- टूल/विकी/सेटअप आम तौर पर, बैश का उपयोग करते समय, मैं बस 'एसबीटी' कह सकता हूं और यह मुझे चलाएगा और मुझे एसबीटी कमांड प्रॉम्प्ट के साथ पेश करेगा। – Pengin

1

ऐसा लगता है कि आप एक स्क्रिप्ट के रूप में खोल खोल रहे हैं, शेल नहीं। मछली सिर्फ आपके जावा कमांड को चलाएगी और फिर बाहर निकल जाएगी।

कि स्क्रिप्ट से बाहर धमाके ले लो और यह निष्पादन योग्य बनाने के लिए और तुम सिर्फ चला सकते हैं यह रूप में

/path/to/मछली/path/to/स्क्रिप्ट

मेरा मानना ​​है कि।

+0

"!" के बिना मुझे एक त्रुटि मिलती है: "exec: Exec प्रारूप त्रुटि मछली: फ़ाइल '/ उपयोगकर्ता/पेंगुइन/बिन/एसबीटी' को निष्पादन योग्य के रूप में चिह्नित किया गया है लेकिन ऑपरेटिंग सिस्टम द्वारा नहीं चलाया जा सकता है।" – Pengin

+0

क्षमा करें, मेरा मतलब है कि पूरी लाइन। फिर "मछली/स्क्रिप्ट" "मछली जावा" जैसा ही है और आप देख सकते हैं कि क्या हो रहा है। दुर्भाग्य से, मैं अभी केवल अपने आईपैड पर हूं, इसलिए स्मृति से काम कर रहा हूं। – JohnMetta

+0

दुर्भाग्य से वही त्रुटि, लेकिन मैंने देखा कि अगर मैं # रखता हूं! लाइन में "$ argv" को हटाएं और हटाएं, फिर यह अपेक्षित काम करता है (एक शॉट एसबीटी लक्ष्य करने की क्षमता खोना)। हालांकि "जावा" लाइन के साथ ऐसी कोई किस्मत नहीं है। यह पता नहीं लगा सकता कि यह "ऑपरेटिंग सिस्टम द्वारा नहीं चलाया जा सका" – Pengin

संबंधित मुद्दे