如何在期望脚本中通过SCP复制两个文件

时间:2014-08-12 18:22:22

标签: bash shell tcl expect

请告知原因

     spawn  scp  $FILE1   $FILE2  $LOGIN@$IP:/tmp

在我的expect脚本中只复制FILE1而不复制FILE2?

我尝试用scp传输这两个文件

 scp file1.csv file2.crt 192.8.200.1:/tmp 

没有预期,他们成功转移到/ tmp

为什么VIA期望复制的唯一文件是 FILE1

我的语法有什么问题?


我期望脚本的例子

#!/usr/bin/expect -f

set FILE1  file1.csv
set FILE2  file2.crt

set multiPrompt {[#>$]}

spawn  scp  $FILE1   $FILE2  $LOGIN@$IP:/tmp
expect {
    ")?"   { send "yes\r"  ; exp_continue  }

    word:  {send $PASS\r}
}

我也试试这个:

 spawn  scp  "$FILE1   $FILE2"   $LOGIN@$IP:/tmp

OR

 spawn  scp  '$FILE1   $FILE2'   $LOGIN@$IP:/tmp

但是我遇到了同样的问题

请帮助!!!!!!!!

1 个答案:

答案 0 :(得分:0)

您可以在expect脚本中使用array和foreach来解决此问题,例如:

#!/usr/bin/expect
set files { file1.csv file2.crt }

foreach file $files {

puts "Let's scp $file"
send "scp $file $LOGIN@$IP:/tmp"

}