1
我的目標是讓程序循環兩個文件,並使用來自file1和file2的所有行的組合來評估單獨的shell腳本。我通過將它移出while循環來驗證我的eval線的工作原理。Bash:我無法在double while循環中運行eval命令
#!/bin/bash
while read line1
do
while read line2
do
eval "ssh_connect $line1 $line2"
done < $FILE2
done < $FILE1
ssh_connect根據命令行參數中提供的用戶名和密碼創建一個新的ssh連接。
set username [lindex $argv 0];
set password [lindex $argv 1];
puts "$password"
puts "$username"
spawn ssh [email protected]<location>.com
expect "assword:"
send "$password\r"
interact
我已驗證上述腳本正常工作。但是,當我從while循環的子shell中調用它時,它會提示輸入密碼,並且不會按預期方式進行設置。
如何修改我的第一個shell腳本,以便它評估第二個正確
您確定需要使用'eval'嗎?這隻在文件包含需要解釋的shell語法時才需要。如果文件只包含用戶名和密碼,你應該可以執行'ssh_connect「$ line1」「$ line2」' – Barmar
使用公鑰認證,而不是像這樣寫定製包裝來提供密碼。 – chepner