我正在做一个 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/