如何处理 bsub 命令中的引号和分号
how to handle quotes and semicolon in bsub command
我正在尝试使用 bsub 向 LSF 调度程序提交命令,但此命令包含一个必须用引号引起来并包含分号的参数值。
这是一个简单的命令来说明我的问题
bsub -o t.o -e t.e echo "foo;bar"
它因 "line 8: bar: command not found" 而失败,所以我认为我可以转义分号但是这个
bsub -o t.o -e t.e echo "foo\;bar"
导致同样的错误,这个
bsub -o t.o -e t.e echo 'foo;bar'
我知道我可以通过将命令写入脚本文件并将其作为 bsub 命令执行来解决这个问题,但在这种情况下,我将测试一些参数并且只修改会更方便bsub 命令,而不是每次都编辑 shell 脚本。
感谢您的帮助!
我能想到的一种简单方法是使用 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
%
我正在尝试使用 bsub 向 LSF 调度程序提交命令,但此命令包含一个必须用引号引起来并包含分号的参数值。
这是一个简单的命令来说明我的问题
bsub -o t.o -e t.e echo "foo;bar"
它因 "line 8: bar: command not found" 而失败,所以我认为我可以转义分号但是这个
bsub -o t.o -e t.e echo "foo\;bar"
导致同样的错误,这个
bsub -o t.o -e t.e echo 'foo;bar'
我知道我可以通过将命令写入脚本文件并将其作为 bsub 命令执行来解决这个问题,但在这种情况下,我将测试一些参数并且只修改会更方便bsub 命令,而不是每次都编辑 shell 脚本。
感谢您的帮助!
我能想到的一种简单方法是使用 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
%