You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sun Grid Engine中指定作业工作目录?

解决作业工作目录与文件路径匹配的问题

针对你遇到的情况,这里提供几种可行的解决方案,帮你让作业正确找到mydata.txt文件:

方案1:修改脚本,让脚本自行定位文件路径

不需要依赖作业的工作目录设置,直接在脚本里用相对脚本位置的路径定位目标文件:

#!/bin/bash
# 获取脚本所在的目录路径
SCRIPT_DIR=$(dirname "$0")
# 用脚本目录拼接sub目录下的mydata.txt路径
tail "${SCRIPT_DIR}/sub/mydata.txt" -n 1 > output.txt

或者让脚本先切换到sub目录再执行命令:

#!/bin/bash
SCRIPT_DIR=$(dirname "$0")
# 切换到sub目录,切换失败则退出脚本
cd "${SCRIPT_DIR}/sub" || exit 1
tail mydata.txt -n 1 > output.txt

这两种方式都能保证不管作业的工作目录是什么,脚本都能找到正确的文件。

方案2:提交作业时直接指定工作目录

如果你的作业调度器支持直接指定工作目录(比如Slurm用--chdir参数,其他调度器可能有类似参数),可以在提交命令里直接把工作目录设为main/sub,不用依赖-cwd:
假设你在main目录下提交作业,命令可以写成:

# 示例:替换成你的实际调度命令
sbatch --chdir=./sub myscript.sh

这样作业运行时的工作目录就是main/sub,脚本里的tail mydata.txt就能找到文件。

为什么修改$HOME没用?

你尝试的export $HOME=main/sub无效,是因为作业运行在独立的环境中,提交时临时设置的$HOME不会传递到作业的运行环境里。作业默认使用的是服务器上你的用户账号的$HOME目录,不是提交时修改的临时值。

内容的提问来源于stack exchange,提问作者ivan199415

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:57:43