我有一个 qsub 脚本
#####----submit_job.sh---#####
#!/bin/sh
#$ -N job1
#$ -t 1-100
#$ -cwd
SEEDFILE=/home/user1/data1
SEED=$(sed -n -e "$SGE_TASK_ID p" $SEEDFILE)
/home/user1/run.sh $SEED
问题是 - 它将所有错误和输出文件(job1.eJOBID 和 job1.oJOBID)放置到我运行 qsub Submit_job.sh 的同一目录中,而我想保存这些文件(输出和错误日志文件在相同的不同目录中)地点(指定为 $SEED_output)。
我尝试将线路更改为
/home/user1/run.sh $SEED -o $SEED_output
但这没有用。有什么建议吗?如何指定默认输出和错误日志文件的路径和名称?
通常,错误和输出文件作为 qsub 脚本中的 pbs 指令给出,或者作为 qsub 脚本的命令行选项给出,如下所示:
#! /bin/bash
#PBS -q queue_name
#PBS -A account_name
#PBS -l nodes=12:ppn=12
#PBS -l walltime=18:00:00
#PBS -e /mypath/error.txt
#PBS -o /mypath/output.txt
或者作为 qsub 的命令行选项,如下所示:
qsub -o /mypath/output.txt -e /mypath/error.txt submit_job.sh
对于第一个选项,我认为您不能使用变量,因为 shell 不会查看注释的行。另外,我认为 PBS 会先于 shell 处理注释行。如果您知道调用 qsub 时的路径,则可以尝试第二个选项。
或者,您可以尝试简单地重定向脚本本身的输出和错误:
/home/user1/run.sh $SEED > ${SEED}/output.txt 2> ${SEED}/error.txt
第三种选择可能是最简单的。输出和错误文件可能仍会在运行目录中创建,尽管它们可能为空。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)