1
リモート検索コマンドを実行しようとしていますが、ユーザーからのコマンドライン引数から値を取得するローカル変数を渡す必要があります。しかし、私は "未定義の変数"エラーが発生しています。私は次のようなことをしています:シェルコマンドでローカル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」を取得していますが、commandの値を直接使用すると実行されています。 もう一度ありがとう:) – emma
my $ pattern = "* 40786 *"; #これは、@ file = $ ssh-> capture2(qq(find/u1/temp -name "* 40786 *"))と書くと実行されます。 変数$パターンを使用すると戻りません# 申し訳ありませんが、愚かな質問です。私はperlには新しく、他の場所では説明を見つけることができませんでした。 – emma
@emmaそれはうまくいくはずです。周囲のコードがなければ、何が間違っているか教えてもらえません。私は新しい質問をし、うまくいかない完全なプログラムを提供することをお勧めします。 – Schwern