2012-12-19 88 views
1

我想使用telnet 沒有用戶名/密碼驗證 只是如何telnet會話

telnet remotehost 

那麼我就需要輸入初始化一些命令連接到遠程主機中運行的腳本

,然後我需要重複下面的命令:

cmd argument 

參數從本地文件讀取,在這個文件中有很多線s,每行是參數 ,並且在運行一個「cmd參數」之後,遠程主機將輸出一些結果 它可能會輸出一個字符串爲「OK」的行 或輸出很多行,其中一行是字符串「ERROR」 我需要根據結果做些事情。

基本上,劇本是這樣的:

initialization_cmd #some initial comands 
while read line 
do  
    cmd $line 
    #here the remote host will output results, how can I put the results into a variable? 
    # here I want to judge the results, like 
    if $results contain "OK";then 
     echo $line >>good_result_log 
    else 
     echo $line >> bad_result_log 
    fi  
done < local_file 

the good_result_log and bad_result_log are local files 

是有可能或沒有?謝謝!

+0

我建議你添加一個標籤爲' bash'或'ksh'來改善你的問題的讀者。請注意,'telnet'標籤只有19個追隨者。除非bash4中有新的功能支持更好的命名管道式通信,正如@cmh所建議的那樣,'expect'是您解決這類問題的最佳選擇。祝你好運。 – shellter

回答

1

這不會工作,因爲echo會輸出到tty的stdout而不是telnet進程的stdin。

我建議爲此任務編寫expect腳本。也許你可以適應像this這樣的東西。

1

此問題在至少四個不同的論壇中同時被詢問。不知道是什麼點這種創業的收入的一種,但這裏有鏈接的答案:

相關問題