2010-12-19 4 views
6

나는 fish 쉘을 사용하여 sbt를 실행하려고합니다. 내가 SBT 호출하면물고기를 사용할 때 왜 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. 

를 얻을. 왜? 명령을 기다려야하지 않습니까?

아마도 관련 메모에서 나는 bash를 사용할 때 첫 번째 줄에 #! [shell] #을 쓰지 않았을 것이라고 확신합니다. 무엇이 바뀌 었습니까?

는 UPDATE : bash는 모두를 사용하여 해당 스크립트를 작성할 때 잘 작동 , SBT는 빌드를하지 않는 다음, (귀하의 예제에서 #!/usr/local/bin/fish)

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

'fish' 스크립트에서'dirname (status -f)'출력은 무엇입니까? 그 디렉토리에'sbt-launch-0.7.4.jar'이 있습니까? 일반적으로 스크립트가있는 디렉토리와 동일한 디렉토리에서 실행하려고 시도하는 것은 좋지 않습니다. 그것은 종종 작동하지 않습니다. 고정 위치 '/ path/to/sbt-launch-0.7.4.jar'를 사용해야합니다. 대화 형 쉘로'fish '를 실행하고 있습니까? 그런 단순한 스크립트가 '물고기'스크립트가 아니라'sh' 스크립트가 될 필요가있는 이유가 있습니까? –

+0

그래, 항아리는 스크립트와 같은 디렉토리에 있습니다. 여기 http://code.google.com/p/simple-build-tool/wiki/Setup 좋은 점은 아마도 bash를 사용해야 할 것입니다. (이것에 관해서는 새 것이고 어류처럼 생겼을 것입니다.) – Pengin

답변

3

당신이 오두막을 사용하지 않는 경우 을 종료 스크립트는 시스템의 기본 셸 (/bin/sh)을 사용하여 실행됩니다.

#!/bin/sh 또는 #!/bin/bash을 사용하여 스크립트를 실행하는 경우 예상대로 작동합니까?

다른 셸과 다른 방식으로 작동하는 방식에는 영향을주지 않는 내용이 스크립트에 없습니다. 나는 당신 스크립트가 당신이하고있는 것에 어떻게 관련되는지 이해하지 못한다. (주로 내가 sbt에 익숙하지 않기 때문이다.) 스크립트의 이름은 무엇입니까? 어떻게 부르죠? 너 어떻게 sbt를 부르는거야?

+0

~/bin에서 스크립트는 'sbt'라고 불리며 다음 지침을 기반으로합니다 : http://code.google.com/p/simple-build- tool/wiki/Setup 일반적으로 bash를 사용할 때 'sbt'를 호출하면 sbt 명령 프롬프트가 실행되고 표시됩니다. – Pengin

1

셸이 아닌 스크립트로 셸을 실행하고있는 것처럼 보입니다. Fish는 java 명령을 실행 한 다음 종료합니다.

는 해당 스크립트 밖으로 강타를 가지고 그것을 실행하고 당신은 실행할 수 있습니다 그것을

/경로 /로/생선/경로 /로/스크립트

내가 믿는

.

+0

"!" "exec : Exec format error fish : '/ Users/Pengin/bin/sbt'파일이 실행 파일로 표시되었지만 운영 체제에서 실행될 수 없습니다."라는 오류가 나타납니다. – Pengin

+0

미안, 나는 전체 라인을 의미했다. 그런 다음 "fish/script"는 "fish java ..."와 동일하며 진행 상황을 볼 수 있습니다. 불행히도, 나는 지금 내 iPad에서만, 그래서 메모리에서 일하고 있어요. – JohnMetta

+0

불행히도 같은 오류가 발생했지만, #! 줄을 입력하고 "$ argv"를 제거한 다음 예상대로 작동합니다 (원샷 SBT 대상을 수행하는 기능이 손실 됨). 그런데 "java"줄이 하나도 없습니다. 왜 "운영 체제에서 실행할 수 없습니까?" – Pengin

관련 문제