繁体   English   中英

将数据从一个CLI应用程序传递到另一个的最佳方法是什么

[英]What is the best way to pass data from one cli app to another

例如,如何将数据从一个cli应用程序(例如Ruby脚本)传递到PHP脚本。 我的意思是原始数据,文本,二进制文件等。由于使用临时文件的原始数据而引起的争论也很la脚。 我知道最后一个可行的方法是stdin,stdout。 也许有人知道更好?

取决于这些程序的执行方式(相对于彼此)。 如果其中一个停止并启动另一个,则stdin / out甚至转储文件都可以解决问题(尽管可能被认为很,脚,但确实可以完成工作!),如果有大量数据,您甚至可以考虑创建一个小型数据库SQLite之类的数据库中的数据表。 这也取决于对在数据之间传递的数据的易失性的要求。

如果存在父/子进程关系,则父进程将启动子进程,则可以考虑使用管道/ FIFO,共享内存或消息队列或任何其他形式的IPC。

您在什么操作系统上? 这决定了您可以使用哪些功能。 您应该使用平台通用的东西。 在* nix系统上,根据应用程序,我们使用管道( | ),套接字和数据文件。

实际上,没有任何一种方法可以做到,它仅取决于应用程序的类型和数据的类型。

如果要移动文本或CSV数据列,则可以使用管道或文本文件。

如果要在Ruby应用程序之间移动哈希和对象,请使用JSON或“ Marshall”数据以及管道,套接字或文件。

如果要在各种语言之间移动数据,请使用JSON,XML或YAML以及这些数据路径之一。

我们通常将JSON用于应用程序间数据格式,并在设置命令行标志时编写代码以允许其发出JSON。 这样一来,我们就可以轻松地将命令行应用程序与一个REST服务结合在一起,并远程调用它们,并将其结果发布到网络上。

综上所述,并没有一条硬性规定就如何完成任何事情,只要与您的代码保持一致并遵循您正在使用的应用程序的样式即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM