簡體   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