我读了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 的默认终端中执行它。
为什么找不到命令?我怎样才能让它发挥作用?
最佳答案
你需要写
cd "$DIR"
严格来说,你只需要加上美元,但你也应该引用路径,因为它可能包含空格。至于命令未找到消息;我不知道。您可以删除空行。我的猜测是这是一个编码问题。如果将脚本直接粘贴到终端而不是运行文件,是否会得到“找不到命令”输出?
关于linux - Bash 脚本将工作目录更改为它所在的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22388755/