linux expect命令

时间:2011-02-10 16:37:24

标签: regex linux expect

我正在使用linux'expect'来自动化密码。

#!/usr/bin/expect
set password passwd 
spawn scp * root@ip_address:.
expect "password:" 
send "$password\r" 
expect eof
output :
spawn scp * root@ip_address:. 
root@ip_address's password: *: No such file or directory

看起来无法识别正则表达式'*'。我知道设置密钥的ssh-key gen方法,但'expect'命令更适合我的具体情况。

1 个答案:

答案 0 :(得分:1)

*不是有效的正则表达式,在您使用它的上下文中,它将是一个通配符。 spawn将按字面解释它并将其作为参数传递给您正在开始的程序。

如果你想要星号全球化,你必须得到一个shell来为你做这件事:

spawn sh -c "scp * root@foo"