在expect脚本中添加2个变量到文件

在expect脚本中添加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

这表明 TCL 正在寻找file_不存在的变量。这可以通过注意变量的存在和结束位置来解决; TCL{}在变量名周围使用与 Perl 相同的语法。

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

相关内容