
Я пытаюсь создать scp
команду для копирования одного файла с одного сервера на другой. Итак, я передаю 8 аргументов скрипту expect
следующим образом
expect my_x_script.exp file_src file_dest s_user s_pass s_host d_user d_pass d_host
Допустимо ли передавать скрипту столько аргументов expect
?
решение1
Да, нет проблем с таким количеством аргументов. В зависимости от версии вашего ожидания, вы извлекаете значения одним из этих способов:
lassign $::argv \
src_file src_user src_pass src_host \
dest_file dest_user dest_pass dest_host
# or
foreach {src_file src_user src_pass src_host dest_file dest_user dest_pass dest_host} $::argv {break}
В какой-то момент пользовательский интерфейс становится сложным в управлении. Вы можете рассмотреть возможность использования параметров командной строки, чтобы помочь все сделать правильно. Проверьтеcmdline
посылка отtcllib
. Тогда вы можете сделать:
expect my_x_script.exp \
-src_file file_src \
-src_user s_user \
-src_pass s_pass \
-src_host s_host \
-dest_file file_dest \
-dest_user d_user \
-dest_pass d_pass \
-dest_host d_host