1

我有以下方式使用 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
4

3 回答 3

4

您应该通过管道使用重定向:

for i in path/*.txt; do
  echo "$i";
  echo "/path2/mycode $i" | qsub;
done
于 2009-03-12T11:30:38.607 回答
1

试试echo /path2/mycode $i | qsub

如果这不起作用或者您需要传递更复杂的数据,那么expect可能会有所帮助。

于 2009-03-12T11:28:27.987 回答
1

只是为了澄清(因为 corvus 的回答完全正确) - CTRL-D 仅表示“文件结束”或“输入结束”,因此当您将该文本回显到 qsub 时,它会自动发送文件结束信号之后(与按 CTRL-D 相同)

于 2009-03-12T11:32:33.563 回答