我看了Can a Bash script tell what directory it's stored in?,它显示我可以通过DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
获取脚本目录。
我发现我可以使用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的默认终端中执行它。
为什么找不到命令?我怎样才能使它发挥作用?
答案 0 :(得分:2)
使用以下内容扩展变量
cd ${DIR}
答案 1 :(得分:2)
你需要写
cd "$DIR"
严格来说,你只需要添加美元,但你也应该引用路径,因为它可能包含空格。关于命令未找到的消息;我不知道。您可以删除空行。我的猜测是编码问题。你没有找到"命令"如果将脚本直接粘贴到终端而不是运行文件,则输出?