我有以下方法使用qsub提交集群作业:
Submitting jobs from standard input
To submit a PBS job by typing job specifications at the command line, the user types
qsub [options] <return>
then types any directives, then any tasks, followed by
(in UNIX) CTRL-D on a line by itself
(in Windows) CTRL-Z <return>
to terminate the input.
有没有办法可以在bash脚本中对RETURN和CTRL-D进行编码,以便我们可以执行以下操作:
for i in path/*.txt; do echo "$i"; qsub [RETURN] /path2/mycode $i; [CTRL-D]; done
答案 0 :(得分:4)
您应该通过管道使用重定向:
for i in path/*.txt; do
echo "$i";
echo "/path2/mycode $i" | qsub;
done
答案 1 :(得分:1)
尝试echo /path2/mycode $i | qsub
。
如果这不起作用或您需要传递更复杂的数据,那么expect可能会有所帮助。
答案 2 :(得分:1)
只是为了澄清(因为corvus的答案是完全正确的) - CTRL-D只是意味着“文件结束”或“输入结束”,所以当你将该文本回显给qsub时,它会自动发送一个结尾之后的文件信号(与按CTRL-D相同)