expect下命令不能解析通配符*的问题

曾遇到这样一段代码:(Bash脚本)php

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/expect -f
set HOST  "192.168.102.1"
set USER  "codefor"
set PASS  "codefor"
set BOOKFILE  "/home/codefor"
 
#upload
spawn  "scp *.zip $USER@$HOST:$BOOKFILE"
expect {
     "*password*"  {send  "$PASS\r" ;}
}
expect eof;

这样的话,会报不存在*.zip的错误,即不能解析通配符*bash

 

在命令前加上bash -c便可。spa

以下:code

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/expect -f
set HOST  "192.168.102.1"
set USER  "codefor"
set PASS  "codefor"
set BOOKFILE  "/home/codefor"
 
#upload
spawn bash -c  "scp *.zip $USER@$HOST:$BOOKFILE"
expect {
     "*password*"  {send  "$PASS\r" ;}
}
expect eof;
相关文章
相关标签/搜索