Linux ожидают команды - PullRequest
       8

Linux ожидают команды

1 голос
/ 10 февраля 2011

Я использую linux «ожидаю» для автоматизации паролей.

#!/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 для установки ключей, но команда «ожидаемо» больше подходит для моего конкретного случая.

1 Ответ

1 голос
/ 10 февраля 2011

* не является допустимым регулярным выражением, и в контексте, в котором вы его используете, это будет подстановочный знак. spawn будет интерпретировать его буквально и передать в качестве аргумента программе, которую вы запускаете.

Если вы хотите, чтобы звездочка была закрыта, вам понадобится оболочка, которая сделает это за вас:

spawn sh -c "scp * root@foo"
...