我正在使用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'命令更适合我的具体情况。
答案 0 :(得分:1)
*
不是有效的正则表达式,在您使用它的上下文中,它将是一个通配符。 spawn
将按字面解释它并将其作为参数传递给您正在开始的程序。
如果你想要星号全球化,你必须得到一个shell来为你做这件事:
spawn sh -c "scp * root@foo"