将键盘命令编码为Bash脚本

时间:2009-03-12 11:22:33

标签: linux bash unix keyboard qsub

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

3 个答案:

答案 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相同)