![TCL 스크립트 - scp가 완료될 때 예상됨](https://linux55.com/image/93536/TCL%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20-%20scp%EA%B0%80%20%EC%99%84%EB%A3%8C%EB%90%A0%20%EB%95%8C%20%EC%98%88%EC%83%81%EB%90%A8.png)
현재 .tar.gz를 원격 서버로 보내는 tcl 스크립트가 있습니다.
spawn scp -r "file_to_send.tar.gz" $user@$host:/
set timeout 10
spawn ssh $user@$host
expect "password: "
send -- "$passwd\r"
send -- "tar -zxvf /file_to_send.tar.gz\r"
sleep 1
그러나 scp가 완전히 완료되지 않아 추출이 작동하지 않는 것 같습니다. scp가 완료되면 프로그래밍 방식으로 확인하는 방법이 있습니까?
답변1
다음 명령을 사용하여 첫 번째 빌드가 완료될 때까지 기다릴 수 있습니다.
expect eof
또는 원하는 경우 반환 코드를 캡처하고 테스트할 수 있습니다.
catch wait result
if [lindex $result 3] { send_user "fail\n"; exit 1 }
send_user "ok\n"