1
我试图运行远程查找命令,但我必须将其值从用户的命令行参数获得的值传递给本地变量。但是,我收到了一个“未定义的变量”错误。我做的是这样的:在shell命令中使用本地perl变量
my $ssh = Net::OpenSSH->new($host);
#I am getting a part of the $path and $pattern from command line
#I have to look for $pattern at the $path
my @files = $ssh->capture(q(find $path -name $pattern));
此命令运行正常,当我给出确切的路径和模式,但我得到的错误,当我用变量替换它。
是的,谢谢你的回复。现在,它不会给我一个错误,但它无法获得匹配的模式。也就是说,当我将相同的模式存储在变量中时,我得到了“find:no match”,但是当我直接在命令中使用模式值时正在运行。 再次感谢:) – emma
my $ pattern =“* 40786 *”;当我编写我的@files = $ ssh-> capture2(qq(find/u1/temp -name“* 40786 *”))时运行。 #但是当我使用变量$ pattern时没有找到返回 对不起,如果它是一个愚蠢的问题。我是perl的新手,无法在别处找到解释。 – emma
@emma这应该工作。没有周围的代码,我不能告诉你什么是错的。我建议你问一个新的问题,并提供一个完整的程序不起作用。 – Schwern