예상 스크립트: 최대 명령줄 인수 수

예상 스크립트: 최대 명령줄 인수 수

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

관련 정보