gpt4 book ai didi

Bash:expect + scp:多个文件的问题

转载 作者:行者123 更新时间:2023-11-29 09:45:08 25 4
gpt4 key购买 nike

function expect_password {
expect -c "\
set timeout 90
set env(TERM)
spawn $1
expect \"password:\"
send \"$password\r\"
expect eof
"
}

expect_password "scp /home/kit.ho/folder/file1 root@$IP:/usr/bin"

上面的 expect_password 完美无缺!

但是,我想传输该目录下的多个文件,所以我尝试了:

expect_password "scp /home/kit.ho/folder/* root@$IP:/usr/bin"

但是出现错误:

/home/kit.ho/folder/*: No such file or directory
Killed by signal 1.

expect 似乎无法识别*。我怎样才能以这种方式传输文件?使用 rsync 有一个可能的答案,但我不能使用它。

最佳答案

expect 的联机帮助页说“如果程序因为 exec(2) 失败而无法成功生成”,所以我假设 expect 在内部使用 exec。 exec 不会调用任何 shell 来进行通配符扩展和此类魔术,这意味着您的 ssh 看到星号并且无法处理它。您是否尝试像这样明确地调用您的 shell

expect_password "sh -c \"scp /home/kit.ho/folder/* root@$IP:/usr/bin\""

(也许您需要省略单引号)?

编辑:使用\"代替 '

关于Bash:expect + scp:多个文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com