我使用以下代码将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`;
}
可以做什么来转义这些括号并记录此条目以成功记录。
答案 0 :(得分:1)
输出看起来像$changeset
变量包含shell元字符。尝试将其括在单引号中:
foreach $changeset(@cs_ids) {
my $getWIs = "scm list changes '$changeset' -r rtcuser";
`$getWIs >> WIassociatedtoComp.log`;
}
输出是否仍然相同?然后请插入循环:
print "$getWIs\n";