我在哪里可以找到关于"批处理脚本"的语法的文档。

时间:2017-10-09 15:36:01

标签: slurm

"批处理脚本的语法(和语义)" sbatch在哪里正式记录?

(我正在寻找正式的文档,而不是示例。)

DESCRIPTION手册页的sbatch部分以此段开头:

   sbatch  submits a batch script to Slurm.  The batch script may be given to sbatch through a file
   name on the command line, or if no file name is specified, sbatch will read  in  a  script  from
   standard  input.  The  batch  script may contain options preceded with "#SBATCH" before any exe-
   cutable commands in the script.

关于我在sbatch手册页中可以找到关于"批处理脚本的语法的所有内容"。

例如,它没有说明这个脚本需要以shebang行开头的事实。 (但是,可以推断这个要求,因为EXAMPLES部分中的所有示例都符合它。)

它也没有提到解释器应放在命令行上的内容。同样,从EXAMPLES部分中的示例可以推断/bin/sh是合适的,但是没有理由认为/bin/bash/bin/zsh也适合(让单独使用,例如/bin/perl/bin/python/bin/ruby等。)

1 个答案:

答案 0 :(得分:1)

文档确实只指定了批处理脚本',这应理解为' non-interactive script'。

只有当你尝试提交已编译的程序时,才会告诉你shebang:

$ sbatch /usr/bin/time
sbatch: error: This does not look like a batch script.  The first
sbatch: error: line must start with #! followed by the path to an interpreter.
sbatch: error: For instance: #!/bin/sh

但您可以提交以支持#的任何语言编写的脚本作为注释符号;在这种情况下最常见的是Bash,Python和Perl。您也可以使用例如Lua,但是您不能将脚本中的资源需求与#SBATCH指令合并。