You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Linux 7下root读取applmgr环境变量并赋值至本地变量

提取Oracle EBS R12中RUN_BASE变量值的解决方法

方法1:屏蔽环境脚本的额外输出

把EBSapps.env执行时产生的所有输出(包括printf内容)都丢弃,只保留目标变量的输出:

BASE_PATH="$(su applmgr -c 'source /u02/oracle/apps/EBSapps.env run >/dev/null 2>&1; echo "$RUN_BASE"')"
  • >/dev/null:将脚本的标准输出全部丢弃
  • 2>&1:把错误输出也一并丢弃,避免干扰结果
  • 最后通过echo "$RUN_BASE"输出纯净的变量值

方法2:用printenv直接提取变量

printenv命令可以精准输出指定环境变量的内容,不受脚本其他输出影响:

BASE_PATH="$(su applmgr -c 'source /u02/oracle/apps/EBSapps.env run; printenv RUN_BASE')"

这种方式更简洁,不需要处理重定向,直接获取变量值。

方法3:过滤输出结果(备选方案)

如果前两种方法不适用,可通过文本过滤提取目标值。假设RUN_BASE是路径格式(以/开头),用grep过滤:

BASE_PATH="$(su applmgr -c 'source /u02/oracle/apps/EBSapps.env run; echo "$RUN_BASE"' | grep "^/")"

只保留以/开头的行,也就是RUN_BASE的路径值,过滤掉脚本的其他输出行。

内容的提问来源于stack exchange,提问作者Rajesh Thampi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 03:37:42