当前位置: 首页 > 面试题库 >

在Linux Shell中从'ftp'命令获取退出状态代码

蓝慈
2023-03-14
问题内容

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


 类似资料:
  • 问题内容: 我可以在node.js中运行bash命令,如下所示: 如何获得该命令的退出代码(在此示例中)?我试过跑步 尽管如此,无论上一个命令的退出代码如何,它总是返回0。我想念什么? 问题答案: 这两个命令在单独的shell中运行。 要获取代码,您应该能够签入回调。 如果这不起作用,则需要添加一个事件处理程序 例如

  • 问题内容: 我在执行linux工具时有一个makefile规则。我需要检查工具命令的退出状态,如果该命令失败,则必须中止make。 我尝试检查$?,$$?\ $?等等在makefile中。但是当makefile运行时,它们给了我语法错误。 什么是正确的方法? 这是Makefile中的相关规则 问题答案: 在makefile中: makefile操作中的每一行都调用一个新的shell-必须在命令失败

  • 问题内容: 我有一个程序,可以从我的代码成功执行cmd命令,但我希望能够从cmd命令获取输出。我怎样才能做到这一点? 到目前为止,我的代码是: Second.java: 和Main.java 我可以通过检查Second.class来检查第一个命令是否正常工作,但是如果该类产生了一些错误,我将如何看到该错误呢? 问题答案: 您需要流程的OutputStream(InputStream)(并且应该使用

  • 我是在尝试 但是我有一个错误 使用缓存的PyAudio-0.2.11.tar.gz(37 kB)安装收集的软件包:pyaudio运行setup.py为pyaudio安装:开始运行setup.py为pyaudio安装:完成,状态为“错误” 错误:命令出错,退出状态为1:' C:\ Users \ Admin \ PycharmProjects \ AI \ venv \ Scripts \ pyth

  • 问题内容: 我有一个程序是: 注意:nv0914是bash可执行文件,nv0914.challenge是文本文件。当我在终端中运行任何常规命令时,如果之后使用,请检查退出代码。现在,我想使用一个程序来做同样的事情,但是该程序只是提供输出。请帮帮我! 问题答案: Process.waitFor()返回一个返回退出代码的位置。如果您启动一个不相关的程序,则不会有先前的退出代码,这就是为什么它不返回任何

  • 我的命令提示符出错了。我从Jupyter尝试了,但出现了一些错误。我感谢任何查看或回答的人,感谢您的时间!