从 Linux shell 中的“ftp”命令获取退出状态代码

2023-11-25

我需要从命令行程序检索退出状态代码。不用担心,我用了 $?。 但对于 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Linux shell 中的“ftp”命令获取退出状态代码 的相关文章

  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 检查 FTP 文件夹是否存在任何与掩码匹配的文件的批处理文件

    我需要创建一个批处理文件来访问受保护的 FTP 站点 检查文件类型 txt 存在 如果存在则进行下一步 如果不存在则返回0并结束作业 我进行了广泛的搜索 但找不到任何解决方案 这不是一项简单的任务 特别是当您需要检查与掩码匹配的文件 而不是
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav
  • Linux 中有没有一种轻量级的方法来获取当前进程数?

    我希望我的 基于 C C 的 程序显示一个数字指示器 指示本地系统上当前有多少个进程 将经常查询正在运行的进程数值 例如每秒一次 以更新我的显示 有没有一种轻量级的方法来获取该数字 显然我可以调用 ps ax wc l 但我不想强迫计算机生
  • 在 shell/shell 脚本中设置 MongoDB 写关注

    我正在尝试填充一个集合MongoDB的壳 据我了解 使用轻松的Write Concern可以大大加快这个过程 我说的是文档 http docs mongodb org manual core write concern write oper
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • 在unix、bash中合并csv文件

    我有一些 csv 文件 其格式如下 测试1 csv field port1 a1 0 2 a2 0 3 a3 0 6 测试2 csv field port2 b1 0 5 b2 0 6 b3 0 7 b4 0 1 b5 0 5 测试3 cs
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我
  • Unix shell脚本找出脚本文件所在的目录?

    基本上我需要使用与 shell 脚本文件位置相关的路径运行脚本 如何将当前目录更改为与脚本文件所在的目录相同 在 Bash 中 你应该得到你需要的东西 如下所示 usr bin env bash BASEDIR dirname 0 echo
  • shell脚本中是否有互斥/信号量机制?

    我正在 shell 脚本中寻找互斥 信号量 并发机制 考虑以下情况 除非 a 用户不关闭共享文件 否则 b 用户应该无法打开 更新它 我只是想知道如何在 shell 脚本中实现互斥量 信号量 临界区等 在 shell 脚本中实现锁定机制 文
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • Shell 执行:时间与 /usr/bin/time

    当 bash zsh 执行以下操作时会发生什么 usr bin time l sleep 1 1 00 real 0 00 user 0 00 sys 516096 maximum resident set size 0 average s
  • LaunchAgent 不运行 shell 脚本

    在 Catalina 之前的 macOS 下 我有一个每天运行 shell 脚本的 LaunchAgent 升级并切换到 zsh 后 它不起作用 我检查过的事情 shebang 切换到 zsh shell脚本可以从命令行手动执行 sh 在系
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • 如何使用类型名称作为字符串来转换为类型?

    好吧 我一整天都在思考这个想法 我已经到了承认我完全不知道的程度 可能我所做的只是愚蠢的 并且有更好的方法 但这就是我的想法给我带来的 我正在尝试使用通用方法在 WinForms 中加载表单 protected void LoadForm
  • 在 Github Actions 中克隆私有存储库

    我正在尝试在 Github actions 中克隆另一个私有仓库 我已经设定SECRET USER and SECRET PASSWORD在我正在运行操作的存储库的秘密中 在操作中我正在运行命令 git clone https SECRET
  • 使用剪贴板将 Excel 数据复制到 IPython 中的 Python 列表中?

    有没有办法执行以下工作流程 选择 Excel 电子表格中的单元格 使用 Ctrl C 复制它们 将选定单元格的内容以 python 列表或 numpy 数组的形式获取到 IPython shell 中 Update 看来readline P
  • Spark - 使用 Firehose 从分区文件夹中读取 JSON

    Kinesis firehose 将文件 在本例中为时间序列 JSON 的持久性管理到按 YYYY MM DD HH 分区的文件夹层次结构 精确到 24 位数的小时 太棒了 那么如何使用 Spark 2 0 读取这些嵌套的子文件夹并从所有叶
  • JQuery 滚动/分页选项卡

    我正在尝试为一个网站创建一个简单的选项卡栏 该网站能够滚动不适合页面的选项卡 这非常简单 不需要任何 ajax 或动态加载的内容 它只是显示所有选项卡 当您单击一个选项卡时 它会将您带到另一个页面 我已经在互联网上搜索过 但似乎找不到除以下
  • 将多对多关系迁移到 Core Data 中的联接表

    我有一个 iPhone 应用程序 它使用多对多关系将标签和注释链接在一起 我目前正在使用核心数据的 关系 功能来完成此任务 但希望迁移到使用连接表 这是我的挑战 我想从旧模型迁移到联接表模型 并且我需要弄清楚如何执行该数据迁移 有没有关于如
  • 捕获任何 VCL 组件上的鼠标单击,并确定其 .Tag 值

    我正在使用国产翻译工具 下次我将使用其中一个库 如下所述 delphi翻译工具 我的翻译人员抱怨翻译一长串字符串很困难 因为他们没有在上下文中看到它们 在它们出现的屏幕上 一位翻译提出了一个很好的建议 他应该能够单击某个组件来更改其文本 我
  • 这是显而易见的事情,但为什么会失败呢?

    编写 net 代码已经很多年了 但我感觉自己像个菜鸟 为什么下面的代码会失败 byte a Guid NewGuid ToByteArray 16 bytes in array string b new UTF8Encoding GetSt
  • 谷歌浏览器和火狐浏览器缓存 DNS 记录多长时间

    多长时间Firefox and Chrome cache DNS记录在自己的 浏览器 中DNS缓存 他们尊重吗TTL 我认为它是重复的Firefox 使 DNS 缓存失效 它有两个配置值Firefox network dnsCacheExp
  • HTML 源代码中锚点之间的新线会在浏览器中创建空白空间 [重复]

    这个问题在这里已经有答案了 可能的重复 如何消除内联元素之间的空格的可见性 我通常将源代码格式化为易于人类阅读 据我所知浏览器会删除任何 n t来自源的字符 因此它们不会进入渲染的 html 今天 我构建了一个菜单 在渲染的 html 中的
  • fopen无法打开文件的原因是什么

    我有以下代码 我试图打开一个文本文件 char frd 32 word list txt FILE rd fopen frd rb if rd std cout lt lt Coudn t open file t lt
  • 阻止来源为“http://localhost:8084”的框架访问跨源框架

    我正在尝试打印由 jspdf 生成并加载到 iframe 上的 pdf 但收到以下错误消息 DOMException 阻止了具有原点的框架 http 本地主机 8084 从访问跨源框架 这是我的代码 function open var pd
  • 单元测试帮助。如何测试控制台的消息输出?

    我是单元测试的新手 如何检查控制台输出 我有 namespace XXShapes public abstract class XXShape public virtual void DrawXXShape Console WriteLin
  • 在 try catch 中使用 Throwable 和 Exception 之间的区别[重复]

    这个问题在这里已经有答案了 有时 我看到 try catch Throwable e 有时 try catch Exception e 有什么不同 通过捕捉Throwable它包括子类化的东西Error 通常 您不应该这样做 除非在线程的最
  • 用于条件绑定的 swift 2 初始值设定项必须具有可选类型,而不是“UIImage”

    更新我的 xcode 以运行 swift 2 后 它给了我这两个我很难解决的错误 Error 1无法为 String AnyObject 类型的值添加下标 索引类型为 String Code let image UIImage editin
  • 这些频段过去是靠肉眼判断的,那么如何以编程方式来判断呢?

    操作员过去常常检查频谱 了解位置和width每个峰值并判断该谱图所属的部分 在新的方式中 图像由相机捕获到屏幕上 并且每个带的宽度必须以编程方式计算 旧系统 分光镜 gt 人眼 新系统 分光镜 gt 相机 gt 程序 有什么好的方法可以计算
  • 按索引列表拆分字符串

    我想按索引列表拆分字符串 其中拆分段以一个索引开始 并在下一个索引之前结束 Example s long string that I want to split up indices 0 5 12 17 parts s index for
  • 二叉树问题。检查相似形状

    嗨 我被困在这样做 不知道该怎么做 如果我有两个二叉树 我如何检查它们是否具有相同的形状 只要树结构相等 节点中的数据并不重要 关于如何解决这个问题有什么想法吗 您可以通过递归轻松地做到这一点 下面的代码之所以有效 是因为当且仅当两个非空树
  • Scala - 新与对象扩展

    使用 new 运算符定义对象与通过扩展类定义独立对象有什么区别 更具体地说 给定类型class GenericType 有什么区别val a new GenericType and object a extends GenericType
  • 从 Linux shell 中的“ftp”命令获取退出状态代码

    我需要从命令行程序检索退出状态代码 不用担心 我用了 但对于 ftp 即使它没有连接 它也会打开 ftp shell 所以我无法理解连接尚未发生 尝试这段代码来理解 bin sh ftp 1234567 OUT if OUT eq 0 th