我正在寻找创建一个智能脚本来将文件上传到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服务器。永远不会拾取文件名,它会进入无限循环。如果可能,我想定义文件所在位置以进行上传。
答案 0 :(得分:0)
$(uploadfilename)
应为$uploadfilename
。
$(...)
是命令替换的替代形式。要从变量中引用(检索)值,您需要使用$variable
语法。