在将输出记录到文件时转义perl中的括号

时间:2015-01-20 13:13:58

标签: perl sh

我使用以下代码将cli的输出(即更改集详细信息)记录到日志文件中:

此代码工作正常,但当更改集详细信息包含括号ie()时,它会断开并导致以下错误。

sh: -c: line 0: syntax error near unexpected token `)'
sh: -c: line 0: `scm list changes 5313) ---$ ABC "Changed to Kill SNMP Agent upon stop( -r rtcuser >> WIassociatedtoComp.log'

我的代码是:

foreach $changeset(@cs_ids) {
        my $getWIs = "scm list changes $changeset -r rtcuser";
        `$getWIs >> WIassociatedtoComp.log`;
        }

可以做什么来转义这些括号并记录此条目以成功记录。

1 个答案:

答案 0 :(得分:1)

输出看起来像$changeset变量包含shell元字符。尝试将其括在单引号中:

foreach $changeset(@cs_ids) {
    my $getWIs = "scm list changes '$changeset' -r rtcuser";
    `$getWIs >> WIassociatedtoComp.log`;
}

输出是否仍然相同?然后请插入循环:

print "$getWIs\n";