예상 스크립트의 파일에 2개의 변수를 추가합니다.

예상 스크립트의 파일에 2개의 변수를 추가합니다.

Expect 스크립트를 사용하고 있는데 출력 파일에 2개의 변수를 설정할 수 없습니다. 파일 이름을 원하는 대로 지정하고 싶습니다.

#!/usr/bin/env expect
set file [lindex $argv 0];
set date [exec date "+%d-%B-%Y"]
spawn sh -c "ssh -o StrictHostKeyChecking=no hostname < ./script.sh > /root/scp_output_$file_$date.txt"

원하는 출력

/root/scp_output_A_21-September-2017.txt

답변1

일부 테스트 코드에서 나타나는 오류는 다음과 같습니다.

can't read "file_": no such variable
    while executing

file_이는 TCL이 존재하지 않는 변수를 찾고 있음을 나타냅니다 . 변수가 존재하고 끝나는 위치에 주의를 기울이면 이 문제를 해결할 수 있습니다. TCL은 {}변수 이름에 대해 Perl과 동일한 구문을 사용합니다.

spawn sh -c "ssh -o StrictHostKeyChecking=no hostname < ./script.sh > /root/scp_output_${file}_${date}.txt"

관련 정보