要在群集中运行作业,我需要提交一个<div class="entry">
<div class="container">
container content
</div>
<div class="container">
container content
</div>
<div class="container">
container content
</div>
<div class="container">
container content
</div>
<div class="pagination">....</div>
</div>
文件,其中要设置的参数之一是工作目录var grid;
function setup() {
createCanvas(800, 800);
grid = {
x1: width / 10,
y1: height / 10,
x2: width - grid.x1,
y2: height - grid.y1,
width: grid.x2 - grid.x1,
height: grid.y2 - grid.y1,
margin: grid.width / 10,
//margin of each lines
};
background(255);
}
function draw() {
grid();
DDA(grid.x1, grid.y1, grid.margin, grid.margin);
}
// ......
。
我在不同目录中有不同的job.sh
个文件。所有#$ -wd /path/to/save/the/result/
几乎完全相同,只是我必须将job.sh
更改为相应的目录,其中每个job.sh
都会找到,因此结果将保存在与/path/to/save/the/result/
相同的位置。 1}}。
由于我在不同目录中有很多job.sh文件,因此需要花费大量时间专门定义job.sh
。
如果我使用job.sh
,结果将保存在我启动/path/to/save/the/result/
文件的位置,这也不太好。我必须每次都使用#$ -cwd
,然后job.sh
。
那么有没有办法可以用同一个变量替换不同的cd /path/to/save/the/result/
,这个变量总是指向qsub job.sh
文件的目录?
我当前job.sh的一个例子是:
/path/to/save/the/result/
答案 0 :(得分:0)
我通常使用 document.getElementById("input").onclick = colorChooser("sth", "yellow");
来获取脚本所在位置的目录。
然后你可以写current_directory="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
或输出文件应该是什么。
答案 1 :(得分:0)
您可以使用dirname $0
获取脚本job.sh
的位置。
编辑:
对于OP的job.sh
,可以对命令进行分组并将输出写入logfile,如下所示:
$ cat job.sh
#!/bin/bash
scriptDir="$(dirname $0)"
# Group the commands and send the output to a logfile
{
module unload compilers mpi
module load compilers/intel/2015/update2
module load mpi/intel/2015/update3/intel
module load gromacs/5.1.1/intel-2015-update2
gmx mdrun -deffnm md_0_1
} &>> "${scriptDir}/logfilename.log"
运行脚本:
$ qsub /path/to/job.sh
只要群集可以访问路径,就应该创建${scriptDir}/logfilename.log
。