linux - 使用变量检查 FTP 状态 - Linux

标签 linux bash shell unix ftp

我正在做一个 ftp,我想检查状态。我不想使用“$?”因为大多数情况下它会为 ftp 返回 0(成功),即使内部 ftp 没有通过。

我知道我可以检查日志文件并从那里执行 grep 以获取“传输完成”(221 状态)。这很好用,但我不想这样做,因为我有很多不同的 ftp 报告。因此,我想避免为所有这些文件创建多个日志文件。

我能否在本地脚本变量中获取记录的信息并在脚本本身内处理它? 与这些类似的东西(我都尝试过但都没有用):

下面是类似于我正在尝试做的事情:

ftp -inv ${HOST} > log_file.log  <<! 
user ${USER} ${PASS}
bin
cd "${TARGET}"
put ${FEEDFILE}
bye
!

关于如何在脚本变量中获取整个 ftp 输出然后在脚本中检查它有什么建议吗?

最佳答案

要将标准输出捕获到变量中,您可以使用 bash 的 command substitution ,所以 OUTPUT=`cmd`OUTPUT=$(cmd)

下面是一个示例,说明如何在您的情况下从 ftp 捕获输出:

CMDS="user ${USER} ${PASS}
bin
cd \"${TARGET}\"
put \"${FEEDFILE}\"
bye"

OUTPUT=$(echo "${CMDS}" | ftp -inv ${HOST})

关于linux - 使用变量检查 FTP 状态 - Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065046/

相关文章:

python 2.7/Linux : socket library binding type error

python - 推荐给程序员的操作系统是什么?

ruby - sed 命令在 ruby​​ 中不起作用,但它在终端中起作用

Bash 使用分隔符 ", "拆分字符串并在字符串中保留空格

bash - 如何在 bash 脚本中编写命令行参数输入重定向?

linux - 权限问题,无法以 root 身份运行脚本

linux - 为什么这个 movq 指令适用于 linux 而不是 osx?

linux - 为 linux 编写鼠标手势应用程序的语言?

linux - (Bash) 如何将许多文件替换到脚本中?

linux - 根据用户输入的文件映射