Esperar script: número máximo de argumentos de línea de comando

Esperar script: número máximo de argumentos de línea de comando

Estoy intentando generar scpun comando para copiar un archivo de un servidor a otro servidor. Entonces, estoy pasando 8 argumentos a un expectscript de la siguiente manera

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

¿Es válido pasar tantos argumentos a un expectscript?

Respuesta1

Sí, no hay problema con tantos argumentos. Dependiendo de su versión esperada, extrae los valores con uno de estos:

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}

Sin embargo, en algún momento, la interfaz de usuario se vuelve difícil de administrar. Es posible que desee considerar el uso de opciones de línea de comando para ayudar a mantener las cosas claras. Revisar lacmdlinepaquete detcllib. Entonces puedes hacer:

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

información relacionada