抱歉,如果它天真。我想编写一个简单的PERL脚本,它接受两个参数(Here Commit Labels),它们被作为cleartool命令的输入并为我提供合适的输出。
我的代码:
#!/usr/bin/perl
$file1 = system('cleartool find . -version "lbtype($ARGV[0])" -print > filename1');
$file2 = system('cleartool find . -version "lbtype($ARGV[1])" -print > filename2');
$file3 = system('diff filename1 filename2 > changeset');
print $ARGV[0];
print $ARGV[1];
print $file3;
close filename1;
close filename2;
close changeset
#!/usr/bin/perl
$file1 = system('cleartool find . -version "lbtype($ARGV[0])" -print > filename1');
$file2 = system('cleartool find . -version "lbtype($ARGV[1])" -print > filename2');
$file3 = system('diff filename1 filename2 > changeset');
print $ARGV[0];
print $ARGV[1];
print $file3;
close filename1;
close filename2;
close changeset
输出现在是3个空文件:filename1,filename2和changeset。 但是我需要在两个提交的标签之间提交的文件。
任何人都可以了解我的错误!
提前致谢。
答案 0 :(得分:2)
试试这个:
$file1 = system("cleartool find . -version 'lbtype($ARGV[0])' -print > filename1");
而不是
$file1 = system('cleartool find . -version "lbtype($ARGV[0])" -print > filename1');
答案 1 :(得分:0)
您还有一些Perl包,以便于执行cleartool
命令。
这样可以直接在数组中获取结果,而不是文件(即使你可以根据需要将该数组转储到文件中)
@res = ClearCase::CtCmd::exec("find . -version 'lbtype($ARGV[0])' -print");