如何让.command文件在自身所在目录中运行?
让run.command自动切换到自身目录执行R脚本
直接在你的run.command开头加上两行命令,就能自动定位到脚本所在的目录并切换过去,之后再执行你的R脚本:
# 定位到当前脚本所在的目录 DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" # 切换到该目录 cd "$DIR" # 执行你的R脚本 Rscript 01-xy.R Rscript 02-yz.R
补充说明:
BASH_SOURCE[0]会获取当前脚本的路径,dirname用来提取路径中的目录部分,cd到该目录后用pwd输出绝对路径,赋值给DIR变量&>/dev/null是为了屏蔽可能出现的错误输出,避免干扰执行流程
另外,别忘了给run.command添加可执行权限,不然双击或者终端运行会报错:
chmod +x run.command
这样不管你从哪个目录启动这个脚本,它都会自动切换到自身所在的根目录,再执行那两个R脚本,完全符合你的需求。
内容的提问来源于stack exchange,提问作者MarcellGranat
相关产品推荐
相关产品推荐

