2017-10-09 121 views
2

sbatch的「批處理腳本」的語法(以及語義)是否在任何地方正式記錄?我在哪裏可以找到有關「批處理腳本」語法的文檔

(我在尋找正式文件,而不是實例)。


手冊頁對sbatchDESCRIPTION節開始這一段:

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

Slurm只是分叉並將腳本傳遞給系統上的'exec'函數,該函數執行所有的魔術。 –

回答

1

該文件確實只指定'批處理腳本',它被理解爲'non-interactivescript'。

只有當你嘗試提交編譯的程序,你告訴的家當:

$ 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指令結合使用。

相關問題