我看过Can a Bash script tell what directory it's stored in?,它表明我可以通过DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
得到脚本目录。Bash脚本改变工作目录到它所在的目录
我发现我可以使用cd
命令来更改工作目录。
这是import.sh的内容。它在/Users/gqqnbig/SourceCode/Java/PlayerStatisticReader/bin
。
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd DIR
java -cp .;jsoup-1.7.3.jar;mysql-connector-java-5.1.29-bin.jar globalVisionEntertainment.nba.Program %1
这是执行脚本后得到的结果。
Macintosh:PlayerStatisticReader gqqnbig$ pwd
/Users/gqqnbig/SourceCode/Java/PlayerStatisticReader
Macintosh:PlayerStatisticReader gqqnbig$ bin/import.sh
: command not found 2:
: No such file or directoryDIR
: command not found 4:
我在Macintosh的默认终端中执行它。
为什么找不到该命令?我怎样才能使它工作?
基于错误消息,它看起来像'import.sh'使用DOS行尾。请务必保存该文件以代替使用UNIX/OS X行尾。 – chepner
你是对的。应用了傻瓜怪胎的方法后,我的脚本就起作用了。此外,我必须改变;到:在类路径选项中。 – Gqqnbig
可能重复的[:命令不foundop/dominio.sh:第2行:](http://stackoverflow.com/questions/21889410/command-not-foundop-dominio-sh-line-2) – tripleee