LINUX.ORG.RU

expect понимает wildcards?


0

0

срипт:
------------------------
#!/usr/bin/expect -f
spawn scp file* user@10.x.x.x:/home/user
expect "user@10*" { send "password\r"}
expect eof
----------------------
запускаю - выдает ошибку

file*: No such file or directory

файлы естественно есть

если так:
spawn scp file1 user@10.x.x.x:/home/user
или даже так
spawn scp file1 file2 user@10.x.x.x:/home/user
то работает

я могу по разному решить вопрос, например tar-ить, но интересует сабж.
кстати, вот так
spawn scp `ls ` user@10.x.x.x:/home/user
:) - тоже не работает

anonymous

попробуй так:

spawn sh -c "'scp file* user@10.x.x.x:/home/user'"

kosmonavt
()

PS

"wildcards" они же регулярные выражения. Их понимают отдельные команды tcl (expect - расширение языка tcl). Если хочешь разобраться с expect выучи сперва tcl.

kosmonavt
()
Ответ на: комментарий от anonymous

>spawn sh -c "scp file* user@10.x.x.x:/home/user"

В принципе можно обойтись без запуска шелл.

spawn scp [glob file*] user@10.x.x.x:/home/user

kosmonavt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.