期望脚本:命令行参数的最大数量

期望脚本:命令行参数的最大数量

我正在尝试生成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

相关内容