Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用scp传输搜索到的文件的bash脚本_Linux_Bash - Fatal编程技术网

Linux 使用scp传输搜索到的文件的bash脚本

Linux 使用scp传输搜索到的文件的bash脚本,linux,bash,Linux,Bash,我对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

我对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"
我建议您在服务器上使用和,然后您可以使用
scp
,而无需通过
expect
提供密码。对于您的问题,您可以使用(bash支持
$()
和``),例如

spawn bash -c "scp $(find /www/reports/archives -name $FILENAME.txt)  
        ftpdomain.com:/"

你的单引号有问题吗?@ElliotFrisch给我一个错误“执行时没有这样的变量”,即使我只是使用textfile.txt而不是变量,所以不喜欢$()