Как запустить файл с URL, используя Expect? - PullRequest
0 голосов
/ 21 декабря 2018

В ожидаемом сценарии я хотел бы загрузить файл и выполнить его.До сих пор я пробовал эти варианты:

Попытка 1 - Просто загрузите и выполните

#!/usr/bin/expect -f

spawn wget mysite.com/file.sh
spawn /bin/sh file.sh

Команда / bin / sh выполняется до завершения загрузки файла

Попытка2 - передача содержимого в исполняемый файл

#!/usr/bin/expect -f

spawn /bin/sh <(curl -s mysite.com/file.sh)

Я получаю эту ошибку:

/bin/sh: <(curl: No such file or directory
send: spawn id exp6 not open
while executing

Я пытался экранировать символы несколькими различными способами

Попытка 3 - Использовать eval

#!/usr/bin/expect -f

spawn eval "\$(/bin/sh <\(curl -s mysite.com/file.sh\))"

Это выдает эту ошибку:

couldn't execute "eval": no such file or directory
while executing

Я пробовал с и без экранирования символов

1 Ответ

0 голосов
/ 21 декабря 2018

system <args> передает аргументы sh.Поэтому вы можете использовать оператор && для выполнения скрипта после его выполнения.

#!/usr/bin/expect -f

system wget mysite.com/file.sh && ./file.sh

Или, если вы вообще не хотите сохранять скрипт:

#!/usr/bin/expect -f

system curl mysite.com/file.sh | /bin/sh
...