如何从Oracle窗体运行Unix命令

如何从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脚本的其余行运行良好解决方案是只添

操作系统: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脚本的其余行运行良好

解决方案是只添加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
不会破坏某些东西