
我正在嘗試生成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