
Estou tentando gerar scp
o comando para copiar um arquivo de um servidor para outro servidor. Então, estou passando 8 argumentos para um expect
script da seguinte maneira
expect my_x_script.exp file_src file_dest s_user s_pass s_host d_user d_pass d_host
É válido passar tantos argumentos para um expect
script?
Responder1
Sim, não há problema com tantos argumentos. Dependendo da sua versão esperada, você extrai os valores com um destes:
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}
Em algum momento, a interface do usuário fica difícil de gerenciar. Você pode querer usar opções de linha de comando para ajudar a manter as coisas em ordem. Confira acmdline
pacote detcllib
. Então você pode fazer:
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