是否可以在 OS X 中通过 shell 脚本传输 TFTP 文件?

Gre*_*reg 3 unix shell tftp macos

我正在将我的开发环境从 Windows 迁移到 OS X,并且遇到了 TFTP 问题。我使用 TFTP 将文件上传到嵌入式网络设备,这是在设备上获取文件的唯一选项(不提供 SCP 支持)。

每次我为这个设备构建固件时,都有一系列三个文件需要上传到它。在 Windows 上,我有一些简单的脚本可以一次性上传我需要的所有文件,这使得部署一切变得更加简单。这些脚本很简单,因为 Windows TFTP 客户端是在这样的单行命令中运行的:

tftp -i <Server IP Address> PUT <Local Filename> <Server Filename>
Run Code Online (Sandbox Code Playgroud)

在 OS X 上似乎没有任何方法可以使用这样的命令上传文件。 相反,您必须打开 tftp 程序并执行一系列如下所示的命令:

$ tftp
tftp> connect <Server IP Address>
tftp> mode binary
tftp> put <Local Filename> <Server Filename>
tftp> quit
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有找到如何编写脚本来执行此操作的运气,尽管我没有大量的 Unix shell 脚本经验。有没有人尝试过做类似的事情并提出任何解决方案?

Gor*_*son 6

您应该能够使用“此处的文档”tftp在脚本中向程序提供命令:

#!/bin/sh

tftp <<EOF
connect <server IP Address>
mode binary
put <Local Filename 1> <Server Filename 1>
put <Local Filename 2> <Server Filename 2>
put <Local Filename 3> <Server Filename 3>
quit
EOF
Run Code Online (Sandbox Code Playgroud)