【问题标题】:Use mkattr in perl script (Unix env)?在 perl 脚本(Unix 环境)中使用 mkattr?
【发布时间】:2017-11-19 02:40:31
【问题描述】:
明文命令行 mkattr 需要将变量 $bug_num 包裹在单引号 + 引号 + $varible + 引号 + 单引号之间,像这样:
cleartool mkattr -replace BUGNUM '"$bug_num"' clearcase_file
如何在 Unix 环境中的 Perl 脚本中调用命令 cleartool mkattr?
Env 是 Unix AIX 和 ksh
【问题讨论】:
标签:
perl
ksh
clearcase
cleartool
【解决方案1】:
如this recent answer中所述:
如果你想执行一个系统命令并且不需要像重定向那样使用任何 shell 语法,通常使用 system 的列表形式会更好更安全:
system(
'cleartool', 'mkattr', '-replace', 'BUGNUM ',
qq{"$bug_num"}, qq{clearcase_file}
);
# or, if you really want to pass both types of quotes:
system(
'cleartool', 'mkattr', '-replace', 'BUGNUM ',
qq{'"$bug_num"'}, qq{clearcase_file}
);
或者:
system(qq{cleartool mkattr -replace BUGNUM '"$bug_num"' clearcase_file});