[英]Bash script change working directory to the directory it is in
我读了 Bash 脚本可以告诉它存储在哪个目录中吗? ,它表明我可以通过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}
你需要写
cd "$DIR"
严格来说,您只需要添加美元,但还应引用路径,因为它可能包含空格。 关于命令未找到消息; 我不知道。 您可以删除空行。 我的猜测是编码问题。 如果将脚本直接粘贴到终端而不是运行文件,会得到“找不到命令”输出吗?
对于它的价值,我一直在寻找关于如何通过 crontab schedule 安排具有特定工作目录的命令的解决方案。
我找到了一种与env
一起完成的方法。
env -C workdir - command args
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.