我正在尝试在通过 bsub 传递到 Platform LSF 的命令中执行进程替换。
在我提交作业的工作节点上,未启用进程替换,因为它不是 POSIX 兼容功能。
因此,我需要启用该功能,然后从 bsub 内提交第二个进程。我已经使用此处文档完成了这项工作,但是,它并非没有错误。最终的 EOF 标记没有被读取,即warning: here-document at line 4 delimited by end-of-file (wanted 'EOF')
set +o posix;
bash <<EOF
some.program -1 <(gunzip -c some.file) -2 <(gunzip -c some.file);
EOF
作为单个字符串提交给 bsub,例如
set +o posix;\nbash <<EOF\nsome.program -1 <(gunzip -c some.file) -2 <(gunzip -c some.file);\nEOF
关于如何正确读取最终 EOF 有什么建议吗?正如我所说,一切都运行良好,所以这只是整理代码的情况。
答案1
shell 需要 EOF 字符串单独在一个完整的行中,只需\n
在其后面添加一个(mybe a do Nothing : after 也可以提供帮助):
set +o posix;\nbash <<EOF\nsome.program -1 <(gunzip -c some.file) -2 <(gunzip -c some.file);\nEOF\n:
注意:我的意思是这是一条评论,但评论中没有足够的空间来完整地写下这一点。