我试图通过以下方式从perl脚本运行bsub命令:
system ("bsub -select "testid::1" -q normal");
但我认为perl因为"testid::1"
中的双引号而感到困惑。实现这个的正确方法是什么?
答案 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';