【问题标题】:FTP not working UNIXFTP 不工作 UNIX
【发布时间】:2017-07-11 21:37:47
【问题描述】:

嗨,我有一个脚本,我正在执行 sudo 并转到特定目录,并在该目录中根据需要编辑文件名。获得所需文件名后,我想在 Windows 机器上 FTP 文件,但在阅读 FTP 命令后脚本说-:

-bash:第 19 行:引用:找不到命令

-bash:第 20 行:引用:找不到命令

-bash:第 21 行:put:找不到命令

-bash:第 22 行:退出:找不到命令

如果我运行正常,我的 ftp 正在工作,所以这是其他问题。脚本如下:

#!/usr/bin/
path=/global/u70/glob
echo password | sudo -S -l
sudo /usr/bin/su - glob  << 'EOF'
#ls -lrt
cd "$path"
pwd
for entry in $(ls -r)
  do
  if [ "$entry" = "ADM" ];then
   cd "$entry"

FileName=$(ls -t | head -n1)
echo "$FileName"

FileNameIniKey=$(ls -t | head -n1 | cut -c 12-20)
echo "$FileNameIniKey"

echo "$xmlFileName" >> "$xmlFileNameIniKey.ini"
chmod 755 "$FileName"
chmod 755 "$FileNameIniKey.ini"
ftp -n hostname
quote USER ftp
quote PASS
put "$FileName"
quit
rm "$FileNameIniKey.ini"
fi
done
EOF

【问题讨论】:

  • 你应该非常重视“那个人”所说的话。更好地格式化您的问题!

标签: shell unix ftp


【解决方案1】:

您可以通过包含一个最小的、独立的示例来改进您的问题,使它们更容易回答并且对未来的读者更有用。这是一个例子:

#!/bin/bash
ftp -n mirrors.rit.edu
quote user anonymous
quote pass mypass
ls

执行时,您将获得手动 FTP 会话,而不是文件列表:

$ ./myscript
Trying 2620:8d:8000:15:225:90ff:fefd:344c...
Connected to smoke.rc.rit.edu.
220 Welcome to mirrors.rit.edu.
ftp>

问题在于您假设脚本是一系列自动输入终端的字符串。这不是真的。是一系列依次执行的命令。

quote user anonymous 不会发生任何事情,直到 AFTER ftp 退出,然后它作为 shell 命令运行,而不是写入 ftp 命令。

改为在命令行上指定登录凭据,然后在此处的文档中包含命令:

ftp -n "ftp://anonymous:passwd@mirrors.rit.edu" << end
ls
end

这按预期工作:

$ ./myscript
Trying 2620:8d:8000:15:225:90ff:fefd:344c...
Connected to smoke.rc.rit.edu.
220 Welcome to mirrors.rit.edu.
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
229 Entering Extended Passive Mode (|||19986|).
150 Here comes the directory listing.
drwxrwxr-x   12 3002     1000         4096 Jul 11 20:00 CPAN
drwxrwsr-x   10 0        1001         4096 Jul 11 21:08 CRAN
drwxr-xr-x   18 1003     1000         4096 Jul 11 18:02 CTAN
drwxrwxr-x    5 89987    546          4096 Jul 10 10:00 FreeBSD

【讨论】:

    【解决方案2】:
    ftp -n "ftp://anonymous:passwd@mirrors.rit.edu" << end
    

    名称或服务未知

    【讨论】:

    • 请解释你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多