bash脚本将文件上传到sftp

时间:2015-04-02 14:30:11

标签: linux bash shell sftp

我正在寻找创建一个智能脚本来将文件上传到sftp网站。我不能使用scp,因为我无法控制sftp站点,而且供应商不允许公钥认证。

#!/bin/bash

            read -p "Do you want to list the sftp site contents (y/n): " list
            read -p "Upload Selected file, type the name of the file: " uploadfilename


    conenctsfttp() {
            export SSHPASS=****
            sshpass -e sftp -oBatchMode=no -b - testuser@example.com
    }

    listfiles() {
            if [[ $list = y ]];
            then
            conenctsfttp <<< $'ls\n bye'
            else
            echo not list
            fi
    }

    uploadfilen() {
    #        if [[ $uploadfilename = y ]];
    #        then
            conenctsfttp << EOF
            put $(uploadfilename)
    EOF
    }

    listfiles
    uploadfilen

如何让脚本读取文件名并将文件上传到sftp服务器。永远不会拾取文件名,它会进入无限循环。如果可能,我想定义文件所在位置以进行上传。

1 个答案:

答案 0 :(得分:0)

$(uploadfilename)应为$uploadfilename

$(...)是命令替换的替代形式。要从变量中引用(检索)值,您需要使用$variable语法。