"批处理脚本的语法(和语义)" 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
等。)
答案 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
指令合并。