如何处理bsub命令中的引号和分号

时间:2015-06-05 13:49:30

标签: lsf

我正在尝试使用bsub向LSF调度程序提交命令,但此命令包含必须引用且包含分号的参数值。

这是一个简单的命令来说明我的问题

bsub -o t.o -e t.e echo "foo;bar"

它失败了“第8行:bar:命令未找到”,所以我以为我可以逃脱分号但是这个

bsub -o t.o -e t.e echo "foo\;bar"

导致相同的错误,所以

bsub -o t.o -e t.e echo 'foo;bar'

我知道我可以通过将命令写入脚本文件并将其作为bsub命令执行来绕过它,但在这种情况下,我将测试一些参数,只是修改bsub会更加方便命令而不是每次编辑shell脚本。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我能想到的一个简单方法是使用bsub的子shell接口:只需从命令行执行bsub <options>而无需指定命令。然后bsub将提示您在子shell中输入命令,并且您可以在此子shell中使用引号。

将子shell发送到文件结尾(CTRL + D),让它知道你已经完成了。下面是一个使用与您的案例类似的示例,但是以交互方式运行而不是使用-o来捕获输出:

%  bsub -I
bsub> echo "foo;bar"
bsub>       <================[### Hit CTRL+D here ###]
Job <5841> is submitted to default queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on hb05b10>>
foo;bar
%