我使用 Perl 脚本在 ClearCase 上的多个 VOB 中为多个用户运行命令。我有一个从文本文件中读取的 VOB 列表。然后我在该列表上循环并执行我想要执行的任何 ClearCase 命令。但是,这一次脚本似乎不起作用。如果我将命令打印到屏幕上,然后在提示符处复制并粘贴它,它工作正常。它只是不会从 Perl 脚本中执行。我看到的唯一区别是 fmt 字符,但即使我删除它也不会执行。我尝试首先将 fmt 直接放在线上,然后尝试将它们设置为变量。你会看到第一个注释行是失败的,但我把它留在那里作为我尝试过的一个例子。最后两条评论来自我这样运行的另一个脚本,它确实有效。
代码:
#! /usr/local/bin/perl -w
use strict;
open(VOBS,"vobs.txt") || die "Can't open: !$\n";
my $u = '%u';
my $a ='%Ad';
my $n ='%N/n';
my $user='john';
my $ct = '/usr/atria/bin/cleartool';
while(my $newvobs=<VOBS>){
chomp($newvobs);
my $tag = $newvobs;
print "\n $tag \n";
print " $ct lstype -kind brtype -invob $tag | grep $user ";
`$ct lstype -kind brtype -invob $tag | grep $user`;
# `/usr/atria/bin/cleartool lstype -kind brtype -invob $tag -fmt '%u %Ad %N/\n' `;
# print "\n cleartool rmtag -view $tag \n";
#`/usr/atria/bin/cleartool rmtag -view $tag `;
}
close(VOBS);