Bash脚本将工作目录更改为它所在的目录

时间:2014-03-13 19:18:35

标签: linux bash shell

我看了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的默认终端中执行它。

为什么找不到命令?我怎样才能使它发挥作用?

2 个答案:

答案 0 :(得分:2)

使用以下内容扩展变量

cd ${DIR}

答案 1 :(得分:2)

你需要写

cd "$DIR"

严格来说,你只需要添加美元,但你也应该引用路径,因为它可能包含空格。关于命令未找到的消息;我不知道。您可以删除空行。我的猜测是编码问题。你没有找到"命令"如果将脚本直接粘贴到终端而不是运行文件,则输出?