【发布时间】:2017-11-06 05:32:49
【问题描述】:
我怎样才能逃脱这些外部字符*/?
此命令在 shell 屏幕上运行。
当我在 Perl 脚本中添加它时,* 字符已损坏命令:
my $sonar = "/opt/tools/wh/dtd/tools/sonar/sonar-runner-2.4/bin/sonar-runner -Dsonar.host.url=http://sonarqubesonar.com:9000 -Dsonar.projectKey=codeAnalysis.test50 -Dsonar.sourceEncoding=Cp1252 -Dsonar.projectBaseDir='/vob/test/test' -Dsonar.sources='/vob/test/test/app/,/vob/test/test/src' -Dsonar.projectName='test50' -Dsonar.java.binaries='/vob/test/test/**/*.jar' ";
它是这样称呼的。
my $cmd = " csh -c '$sonar '";
print "cmd\n";
my $result = system("($cmd) >> /logs/on.txt 2>&1");
我得到的错误是:
Dsonar.java.binaries='/vob/test/test/**/*.jar' "; this variable is broken (*)
【问题讨论】:
-
Perl 语句很好。星号将保留在您放置它们的位置。
-
什么不起作用?你是如何使用这个变量的。是什么让你觉得它“坏了”?
-
一般来说,对于 Perl 来说,反斜杠 \ 是转义字符,尽管这一行看起来可以正常工作。
-
Dsonar.java.binaries='/vob/test/test/**/*.jar' "; 这个变量坏了(星号)
-
不要在 cmets 中添加重要的细节。请edit your question 包含这些内容。