linux - 从 linux shell 中的 'ftp' 命令获取退出状态代码

标签 linux bash shell ftp exit-code

我需要从命令行程序中检索退出状态代码。不用担心,我使用了 $?。 但是对于 ftp,即使它没有连接,它也会打开 ftp shell,所以我无法理解连接没有发生。

试试这段代码来理解:

#!/bin/sh

ftp 1234567
OUT=$?
if [ $OUT -eq 0 ];then
   echo "ftp OK"
else
   echo "ftp Error: "$OUT
fi

exit 0

有什么帮助吗? 谢谢菲利波

最佳答案

您应该寻找来自 ftp 命令的成功消息,而不是寻找状态。这是“226 传输完成”。您可以通过系统上的 ftp 手册进行确认。

200 PORT command successful.
150 Opening ASCII mode data connection for filename.
226 Transfer complete.
189 bytes sent in 0.145 seconds (0.8078 Kbytes/s)

这是一个示例脚本。

FTPLOG=/temp/ftplogfile
ftp -inv <<! > $FTPLOG
open server
user ftp pwd
put filename
close
quit
!

FTP_SUCCESS_MSG="226 Transfer complete"
if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then
   echo "ftp OK"
else
   echo "ftp Error: "$OUT
fi
exit 0

关于linux - 从 linux shell 中的 'ftp' 命令获取退出状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899316/

相关文章:

linux - 将当前目录存储在变量中,并使用变量来存储从前一个变量开发的路径

bash - FFmpeg 如何使用 bash 生成视频序列

c - 在 Linux 上用 C 处理多线程 TCP 服务器的最佳方法

linux - 我应该把 "down"文件放在哪里以防止 Chef 启动

java - Protocol Buffers 可执行系统间 Linux 错误

bash:parse_git_branch:找不到命令

arrays - 在 Bash 中循环遍历字符串数组?

linux - 在 Bash 脚本中隐藏输出

php - chown : Operation not permitted

linux - 已安装的 glib 未列在已安装的软件包下