gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:02:58 25 4
gpt4 key购买 nike

我需要从命令行程序中检索退出状态代码。不用担心,我使用了 $?。但是对于 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com