Expect Script: Número máximo de argumentos de linha de comando

2

Estou tentando gerar o comando scp para copiar um arquivo de um servidor para outro. Então, estou passando 8 argumentos para um script expect da seguinte forma

expect my_x_script.exp file_src file_dest s_user s_pass s_host d_user d_pass d_host

É válido passar esses muitos argumentos para um script expect ?

    
por firoj_mujawar 23.09.2016 / 14:35

1 resposta

1

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 olhar para o uso de opções de linha de comando para ajudar a manter as coisas corretas. Confira o cmdline package de tcllib . 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
    
por 23.09.2016 / 16:03