我有以下脚本成功运行。但是,如果我尝试使用通配符复制多个文件,则会引发错误,说“没有这样的文件或目录”。
此代码有效:
#!/usr/bin/expect -f
spawn scp file1.txt root@192.168.1.156:/temp1/.
expect "password:"
send "iamroot\r"
expect "*\r"
expect "\r"
Run Code Online (Sandbox Code Playgroud)
以下不起作用:
#!/usr/bin/expect -f
spawn scp * root@192.168.1.156:/temp/. #fails here
….
Run Code Online (Sandbox Code Playgroud)
在*通常由外壳(bash)的扩展,但在这种情况下,你shell是expect。我怀疑这expect不是扩展*.
尝试:
spawn bash -c 'scp * root@192.168.1.156:/temp/.'
Run Code Online (Sandbox Code Playgroud)
解释:
#!/usr/bin/expect -f
spawn echo *
expect "*"
spawn bash -c 'echo *'
expect "file1 file2…"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10325 次 |
| 最近记录: |