Назад | Перейти на главную страницу

Как использовать wget в сценарии Expect?

Я сначала загружаю файл в /root/TRY1/:

#!/usr/bin/expect
cd /root/TRY1/
exec wget --http-user $user --http-password $password $url

Затем я хочу извлечь файл:

cd /root/TRY1/
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"

Однако это просто загружает файл в это место и останавливается после этого. Файл не извлекается.

Но когда я комментирую часть wget и запускаю команду извлечения, она извлекается.

Как мне выполнить обе команды последовательно?

Используйте родной Expect spawn команда:

#!/usr/bin/expect
cd /root/TRY1/
spawn wget --http-user $user --http-password $password $url
spawn bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"

Или предотвратить wget от записи в терминал с --quiet аргумент:

#!/usr/bin/expect
cd /root/TRY1/
exec wget --quiet --http-user $user --http-password $password $url
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"

wgetиндикатор выполнения вызывает сбой Expect, когда он вызывается с exec.