予想されるスクリプトのファイルに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"

おすすめ記事