我正在使用 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"