
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