2011-02-10 153 views
1

我正在使用linux'expect'來自動化密碼。linux expect命令

#!/usr/bin/expect 
set password passwd 
spawn scp * [email protected]_address:. 
expect "password:" 
send "$password\r" 
expect eof 
output : 
spawn scp * [email protected]_address:. 
[email protected]_address's password: *: No such file or directory 

看起來正則表達式'*'不被識別。我知道設置密鑰的ssh-key gen方法,但'expect'命令更適合我的具體情況。

回答

1

*不是一個有效的正則表達式,並且在上下文中使用它,它將是一個通配符。 spawn將從字面上解釋它,並將其作爲參數傳遞給您開始的程序。

如果你想在星號匹配替換的,你必須得到一個shell來爲你做它:

spawn sh -c "scp * [email protected]" 
+1

的另一種選擇是讓期待做水珠擴張與`glob`命令 – 2011-02-10 16:52:26