从perl脚本运行bsub命令

时间:2014-08-20 13:12:52

标签: perl shell lsf

我试图通过以下方式从perl脚本运行bsub命令:

system ("bsub -select "testid::1" -q normal");

但我认为perl因为"testid::1"中的双引号而感到困惑。实现这个的正确方法是什么?

2 个答案:

答案 0 :(得分:6)

你可以逃避内部引号:

system ("bsub -select \"testid::1\" -q normal");

或者用单引号替换外部引号,或者实际上任何字符都是替换的,这要归功于Perl中的qq广义引号运算符,它恰好存在于这种场景中;

system (qq{bsub -select "testid::1" -q normal});

有一个配套的通用单引号运算符q

答案 1 :(得分:1)

不是将整个命令拟合到单个带引号的字符串中(尽管使用通用引用运算符使得相当简单),您可以使用system的多参数版本来避免需要引用整个命令行

system 'bsub', 'select[type==LINUX64&&clearcase]', '-select', 'testid::1', '-q' 'normal';