我想让使用鱼壳的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]。什么改变了?
UPDATE: 写作时相当于脚本使用bash一切正常,SBT不会做构建然后退出(在你的例子#!/usr/local/bin/fish
)
#!/bin/bash
java -Xmx512M -jar `dirname $0`/sbt-launch-0.7.4.jar "[email protected]"
'dirname(status -f)'在'fish'脚本中输出了什么?该目录中是否有'sbt-launch-0.7.4.jar'?一般来说,尝试从脚本所在的同一目录运行一些东西并不是一个好主意。它通常不起作用。你应该使用一个固定的位置:'/ path/to/sbt-launch-0.7.4.jar'。你是否在运行'fish'作为交互式shell?有这样一个简单的脚本需要成为'鱼'脚本而不是'sh'脚本的原因吗? – 2010-12-19 19:19:19
是的,这个jar和脚本是一样的,按照这里的方向http://code.google.com/p/simple-build-tool/wiki/Setup 好点,也许我应该只用bash (这是新的,就像鱼一样,也许会被带走) – Pengin 2010-12-19 20:34:48