我根本没有太多关于bash的经验。当我没有使用find命令并直接从文件中scp时,下面的脚本工作。但是我正在尝试查找并传输一个附加了今天d / m / y的文件,并在找到它之后仅传输这个文件。
目前提供错误'找不到文件'也不确定如何在这种情况下使用变量,因为我是PHP编码器。谢谢
#!/usr/bin/expect -f
FILENAME = appendname_'.date +%d%m%Y;
spawn bash -c "scp 'find /www/reports/archives . -name
$FILENAME.txt' ftpdomain.com:/"
expect "password:"
send "pwaord\r"
expect "*\r"
expect "ok"
答案 0 :(得分:1)
我建议您在服务器上使用ssh-keygen
和install the key,然后使用scp
而不必通过expect
提供密码。对于您的问题,您可以使用command substitution(bash支持$()
和``),例如
spawn bash -c "scp $(find /www/reports/archives -name $FILENAME.txt)
ftpdomain.com:/"