如何从Oracle窗体运行Unix命令
操作系统:UNIX Solaries、Oracle Application Server 10g 为了从Oracle窗体运行shell脚本,我使用了以下如何从Oracle窗体运行Unix命令,unix,oas,Unix,Oas,操作系统:UNIX Solaries、Oracle Application Server 10g 为了从Oracle窗体运行shell脚本,我使用了以下主机('/bin/bash/u01/compile.sh'),它运行得很好 现在,我需要运行unix命令,比如 主机('mv form1.fmx form1.fmx')但它不工作 我试图将命令mv form1.fmx form1.fmx'附加到compile.sh shell脚本中,但它也不起作用,尽管shell脚本的其余行运行良好解决方案是只添
主机('/bin/bash/u01/compile.sh')
,它运行得很好
现在,我需要运行unix命令,比如
主机('mv form1.fmx form1.fmx')
但它不工作
我试图将命令
mv form1.fmx form1.fmx'
附加到compile.sh shell脚本中,但它也不起作用,尽管shell脚本的其余行运行良好解决方案是只添加mv命令的完整路径,它工作良好,如下所示
/bin/mv/u01/oracle/runtime/test/form1.fmx/u01/oracle/runtime/test/form1.fmx
如果其他任何人遇到相同的问题,原因是表单进程创建一个子进程来执行host()
命令,并且子进程继承父进程的环境变量,来自default.env
(或服务器配置中定义的其他env文件)。该文件中定义了一个PATH
变量,但它不包含通常的/bin
或/usr/bin
,因此除非指定了完整路径,否则不会执行命令
解决方案是在执行的脚本(通过导出路径=$PATH:…
)或默认.env
中设置正确的路径变量。我在脚本中设置了它,因为了解Oracle,不能保证修改default.env
不会破坏某些东西