mla*_*teb 13 command-line bash scripts
我在 GitHub 上找到了这个bash脚本,我想将其用于我自己的工作。我的问题如下:第 2 行到第 5 行是什么意思?它们只是评论还是有任何用途?
#!/bin/bash
#$ -l h_rt=72:00:00
#$ -V
#$ -N index_calc
#$ -j y
source ~/modules.sh
cd $1
l_file=`find . -name 'L*stack' -type f`
for l in $l_file; do
echo "Running on file:"
echo $l
extract=${l:0:45}
name=${extract}_index.tif
echo "Name of index stack:"
echo $name
echo "Executing code..."
~/Documents/misc/spectral/transforms.py \
-v $l $name evi ndvi nbr ndmi
done
echo "Done!"
Run Code Online (Sandbox Code Playgroud)
des*_*ert 19
以 开头的行#$是选项qsub,用于向 SGE 集群提交作业的命令,本自述文件中解释的调度系统:
使用 BIMSB(即将称为 MAX)集群环境类似于使用 unix/linux 环境提交作业(例如运行脚本或其他软件)。不同之处在于您需要事先指定所需的资源。集群由组织队列和资源的 SGE(Sun Grid Engine Software)控制。当有限的计算资源被许多人共享时,这种调度系统是必要的。而且,如果您正在为多个样本运行对齐并希望将这些任务(作业)分布在多台机器或 CPU 上,或者运行需要在多个 CPU 上运行很长时间的统计模拟时,这将非常有用。对于这些情况以及更多类似情况,
SGE 将进行“作业调度”。这意味着您可以提交所有作业,SGE 会将它们排入队列并在您请求的资源可用时运行它们。SGE 还将实现“负载平衡”,其中将分配作业,以便特定节点不会过载。此外,SGE 将允许您进行“作业监控和会计”,这在您想检查您的作业是否正在运行时非常有用,如果它失败,它将帮助您了解出了什么问题。
该qsub命令的语法在其手册页中进行了解释,您的脚本使用以下选项:
-l h_rt=<hh:mm:ss> – 指定最长运行时间(小时、分钟和秒)-V – 将所有环境变量传递给作业-N <jobname>– 指定作业的名称。当您使用qstat, 检查您的作业状态时,您将看到这一点。-j y[es]|n[o] – 指定是否将作业的标准错误流合并到标准输出流中正如How to submit a job using qsub解释的那样,可以qsub直接在脚本中以#$. 这是qsub在命令行上使用命令传递它们的替代方法。