Почему сбт бросает курить при использовании рыбы? - PullRequest
6 голосов
/ 19 декабря 2010

Я пытаюсь запустить sbt, используя рыбную раковину.

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

Когда я звоню sbt, я получаю следующее

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

Затем Сбт уходит. Зачем? Разве это не должно ждать команд?

Что касается возможной связанной заметки, я уверен, что раньше я не делал #! [Shell] в первой строке, когда использовал bash. Что изменилось?

UPDATE: При написании эквивалентного скрипта для использования bash все работает нормально, sbt не выполняет сборку, а затем завершается

#!/bin/bash
java -Xmx512M -jar `dirname $0`/sbt-launch-0.7.4.jar "$@"

Ответы [ 2 ]

3 голосов
/ 19 декабря 2010

Если вы не используете шебанг (#!/usr/local/bin/fish в вашем примере), скрипт будет работать с оболочкой по умолчанию в вашей системе, что вероятно /bin/sh.

Если вы запустите свой скриптс использованием #!/bin/sh или #!/bin/bash работает ли он так, как вы ожидаете?

В вашем сценарии нет ничего, что могло бы повлиять на то, как все работает иначе, чем на другие оболочки.Я не понимаю, как ваш сценарий связан с тем, что вы делаете (в основном потому, что я не знаком с sbt).Как называется ваш сценарий?Как это называется?Как ты звонишь sbt?

1 голос
/ 19 декабря 2010

Похоже, вы запускаете оболочку как скрипт, а не оболочку.Рыба просто запустит вашу команду java и затем выйдет.

Возьмите удар из этого скрипта и сделайте его исполняемым, и вы можете просто запустить его как

/ path / to / fish / path / to / script

Я считаю,.

...