smbclient脚本将几个文件放入变量

时间:2016-11-24 10:23:39

标签: linux shell samba

我想将包含pdf文件的整个目录放在另一台带有smbclientscript的服务器上。我的剧本:

    #Set variable for reports
variable=`ls | grep pdf`

smbclient -U "server\user"%pw //some/direc/tory/bla/bla << Commands
cd to/another/dir
put $variable
exit
Commands

它确实有效,但问题是它只能复制第一个是监听的文件grep pdf。 对于其他文件,shell响应file:command not found。

2 个答案:

答案 0 :(得分:1)

在bash中

variable=`ls |grep pdf`

将获得带有STDOUT的字符串变量,而不是数组。这不是你想要的。

也许xargs会帮助你。你可以这样做,但我认为不是一个优雅的解决方案。

ls | grep '.pdf$' |xargs -I{} smbclient -U "server\user"%pw //some/direc/tory/bla/bla -D 'to/another/dir' -c "{}"

答案 1 :(得分:0)

我得到的解决方案是我自己:

cd /directory/with/files/to/copy
#Set Variable
reports=$(ls *)
for i in $reports ; do

    smbclient -U "srv\User"%pws //some/dir/bla/bla/bla << Commands
    cd another/dir/etc
    put $i
    exit
    Commands
    done

谢谢!