予想されるスクリプト:最大コマンドライン引数の数

予想されるスクリプト:最大コマンドライン引数の数

scpあるサーバーから別のサーバーにファイルをコピーするコマンドを生成しようとしています。そのため、expect次のように8つのパラメータをスクリプトに渡します。

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

おすすめ記事