-1
所以即時嘗試寫一個腳本,通過SSH自動連接過於複雜的代碼問題
我有三個文件。 首先是文本文件(file.txt的)我的登錄憑據(現在它只有一個,但後來會有幾個):
user1 abcd
第二個文件(connect.sh)是bash的文件讀取憑據並將他們希望文件是這樣的:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
count=0;
words[0]="";
for word in $line; do
words[$count]="$word"
count=$(($count + 1))
done
myDir="$(dirname "$0")"
"$myDir/find.sh" "${words[1]}"
done < "$1"
第三個文件(find.sh)是/預期文件,該文件是這樣的:
#!/usr/bin/expect
set password [lindex $argv 0]
spawn ssh "[email protected]"
expect "Password:"
send "$password\r"
interact
然而,當我嘗試登錄它未能提供 密碼。據我檢查密碼是正確發送到期望的腳本。此外,我嘗試設置超時功能,但它也不起作用。
您應該使用SSH密鑰。 –
你讓自己變得更難。期望的是Tcl,一個完整的腳本系統,可以讀取文件,無需調用另一個進程尋求幫助。既然你的bash腳本幾乎什麼都不做(什麼是數字?你不使用它)放棄額外的噪音。在expect腳本中調試'puts'也會有所幫助。 – msw
我不確定發佈時是否發佈了錯字。無論如何,要模擬'enter'鍵,你必須使用'\ r',而不是'/ r'。 – Dinesh