6

魚の殻を使って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.

その後、sbtは終了します。なんで?コマンドを待つだけではいけませんか?

おそらく関連するメモとして、 bashを使用していたとき、最初の行で#![shell]を実行する必要はなかったと確信しています。何が変わったの?

更新:bashを使用する同等のスクリプトを作成すると、すべてが正常に機能しますが、sbtはビルドを実行せずに終了します

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

2 に答える 2

3

(あなたの例で)シバンを使用しない場合#!/usr/local/bin/fish、スクリプトはシステムのデフォルトのシェルで実行されます/bin/sh

を使用してスクリプトを実行した場合、#!/bin/shまたは#!/bin/bash期待どおりに動作しますか?

スクリプトには、他のシェルとは異なる動作に影響を与えるものは何もありません。あなたのスクリプトがあなたのやっていることとどのように関連しているかわかりません (主に私が sbt に慣れていないためです)。スクリプトの名前は何ですか? それはどのように呼ばれますか?どのようにsbtを呼んでいますか?

于 2010-12-19T17:16:13.090 に答える
1

シェルではなく、スクリプトとしてシェルを実行しているようです。FishはJavaコマンドを実行して終了します。

そのスクリプトから強打を取り、それを実行可能にし、あなたはそれを次のように実行することができます

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

私は信じている。

于 2010-12-19T17:27:34.737 に答える