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"