2010-12-19 19 views
6

Balık kabuğunu kullanarak sbt koşmaya çalışıyorum. Ben sbt çağırdığınızdaBalık kullanırken sbt neden kesiliyor?

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

Ben sbt sonlandırılıyor sonra aşağıdaki

[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. 

olsun. Niye ya? Sadece komutları beklememeli mi?

Muhtemelen ilgili bir notta, bash kullanırken ilk satırda #! [Shell] yapmak zorunda olmadığından eminim. Ne değişti?

GÜNCELLEME: bash herşeyi kullanmak eşdeğer senaryoyu yazarken çalışıyor , sbt bir yapı yapmaz, sonra (sizin örnekte #!/usr/local/bin/fish)

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

'Balık komut dosyasında' dizin (status-f) çıkışı nedir? Bu dizinde sbt-launch-0.7.4.jar' mı? Genel olarak, betiğin bulunduğu dizinden aynı şeyi çalıştırmayı denemek iyi bir fikir değildir. Genellikle işe yaramıyor. Sabit bir yer kullanmalısınız: '/ yol/to/sbt-launch-0.7.4.jar'. Etkileşimli kabuk olarak "balık" mı çalıştırıyorsunuz? Böyle basit bir senaryonun bir 'sh' betiği değil, bir' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –

+0

Evet, kavanoz komut dosyasıyla aynı dir, burada http://code.google.com/p/simple-build-tool/wiki/Setup İyi noktalar, belki de sadece bash kullanmalıyım (bu konuda yeniyim, balık gibi ve belki de götürüldüm) – Pengin

cevap

3

Bir shebang kullanmazsanız çıkın Bir komut dosyası sisteminizde varsayılan kabuk ile çalışacaktır, bu muhtemelen /bin/sh olacaktır.

Scriptinizi #!/bin/sh veya #!/bin/bash kullanarak çalıştırırsanız, beklediğiniz gibi çalışır mı?

Komut dosyanızda, nesnelerin diğer kabuklardan nasıl farklı çalıştığını etkileyecek hiçbir şey yoktur. Senaryonun ne yaptığına bağlı olduğunu anlamıyorum (çoğunlukla sbt'yi bilmediğim için). Komut dosyanızın adı nedir? Nasıl denir? Sbt'i nasıl çağırıyorsun?

+0

Komut, ~/bin dizininde 'sbt' olarak adlandırılmıştır ve bu talimatlara dayanmaktadır http://code.google.com/p/simple-build- tool/wiki/Setup Normal olarak, bash kullanıldığında, 'sbt' diyebilirim ve sbt komut istemiyle birlikte çalışıp sunacaktır. – Pengin

1

Kabuğu bir komut dosyası olarak değil de bir kabuk olarak çalıştırıyorsunuz gibi görünüyor. Balık, java komutunu çalıştırır ve sonra çıkar.

bu komut dosyasının dışına patlama atın ve çalıştırılabilir yapın ve sadece çalıştırabilir o

olarak

// yol/balık// yol/komut

inanıyorum

.

+0

"!" Olmadan Bir hata alıyorum: "exec: Yürütme hatası hatası balık: '/ Users/Pengin/bin/sbt' dosyası çalıştırılabilir olarak işaretlendi ancak işletim sistemi tarafından çalıştırılamadı." – Pengin

+0

Özür dilerim, tüm satırı kastettim. Sonra "balık/senaryo" "balık java" ile aynı ... ve neler olduğunu görebilirsiniz. Maalesef, şu an sadece iPad'imdeyim, bu yüzden hafızadan çalışıyorum. – JohnMetta

+0

Maalesef aynı hata, ama ben # tutarsam fark ettim! Satır ve "$ argv" kaldırmak sonra beklendiği gibi çalışır (bir-shot sbt hedefleri yapma yeteneğini kaybetme). Tek "java" çizgisinde böyle bir şans yok. Neden "işletim sistemi tarafından çalıştırılamadı" anlayamıyorum – Pengin