簡體   English   中英

在從Java啟動的命令行命令或Shell腳本退出之前提取過程環境

[英]Extract process environment before exit from java-initiated command line command or shell script

我想讀取/轉儲我從Java內部啟動的進程(.sh文件,命令行調用等)的環境變量。

例如,我有一個運行並設置環境變量的shell腳本:

#!/bin/bash
export blah='really boring'

我從父Java程序調用了該Shell腳本,但是在退出Shell腳本之前,我想從其環境中提取$ blah的值。 這將使我除了返回代碼和stdout / stderr流之外,還可以將信息傳遞回調用Java程序。

我想我可以將env轉儲到一個文件中,然后再讀取該文件,但是我需要專門修改腳本來做到這一點,包括文件系統,這看起來很麻煩。

通過閱讀POSIX exit的各種文檔,我可以在進程上放置on_exit掛鈎,但是我想知道是否有一種方法可以使用合理的純Java實現此功能。 JNR可以提供幫助嗎?

任何其他想法都很好,跨平台越多越好,例如包裝以更多UNIXy優點調用的命令/ shell或除標准groovy / java進程啟動庫之外的其他庫。

您可以使腳本更長一些,以轉儲環境變量。

runtime.exec("bash", "-c", ". your-script.sh ; export > export.dump");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM