在我的程序中,我使用Expect來運行ssh
。我的計劃是如何使用Expect與SSH連接?
$argument="[email protected]";
$exp->spawn("ssh $argument") or die "Cannot spawn ssh to ip $ssh_ip_address\n";
但即使它不能產卵ssh
它不打印Cannot spawn ssh to ip $ssh_ip_address
。你能幫我理解爲什麼它會給出錯誤信息嗎?
在我的程序中,我使用Expect來運行ssh
。我的計劃是如何使用Expect與SSH連接?
$argument="[email protected]";
$exp->spawn("ssh $argument") or die "Cannot spawn ssh to ip $ssh_ip_address\n";
但即使它不能產卵ssh
它不打印Cannot spawn ssh to ip $ssh_ip_address
。你能幫我理解爲什麼它會給出錯誤信息嗎?
首先,你爲$argument
聲明使用了雙引號,這意味着變量將被插入其內容中。 @10
將被評估爲數組@10
的內容。使用單引號來避免插值。
請記住,總是總是包括use strict; use warnings;
位於每個Perl模塊,程序和腳本的頂部。它會爲你節省很多隱藏的錯誤,因此很多頭痛。 :)
對於其他任何事情,你必須發佈你正在運行的實際代碼。
不是直接使用Expect,而是運行Net::SSH::Expect(包含與Expect的SSH交互)或Net::OpenSSH(但不使用Expect,並建議不要這樣做)。另外,總是使用嚴格和警告。
該程序甚至沒有編譯。 '數組找到了操作符預期的地方......語法錯誤在......,「root @ 10」附近''發佈你的真實代碼。 - 當你在等待這個問題的回覆時,可能會使用時間來查看[你的問題列表](http://stackoverflow.com/users/73181/shayam)和[accept](http://stackoverflow.com/faq#When_you_have_decided_which_answer_is_the_most_helpful_to_you,_mark_it_as_the_accepted_answer)更多答案。 – daxim 2010-07-09 08:57:54
我真的不知道如何判斷答案。 – Raj 2010-07-09 09:31:35
我已將您鏈接到[FAQ](http://stackoverflow.com/faq):點擊答案左邊的複選標記,以便它變綠。你已經做了好幾次了,記得嗎? – daxim 2010-07-09 09:59:36