0

操作系统:UNIX Solaries,Oracle 应用服务器 10g

要从 Oracle Forms 运行 shell 脚本,我使用了以下内容host('/bin/bash /u01/compile.sh'),它运行良好

现在,我需要运行类似的 unix 命令

host('mv form1.fmx FORM1.FMX')但它不工作

我试图将命令附加 mv form1.fmx FORM1.FMX'到 compile.sh shell 脚本,但它也不起作用,尽管 shell 脚本的其余行运行良好

4

2 回答 2

1

解决方案是只添加 mv 命令的完整路径,它运行良好,如下

/bin/mv /u01/oracle/runtime/test/form1.fmx /u01/oracle/runtime/test/FORM1.FMX

于 2012-08-23T18:06:05.307 回答
-1

如果其他人遇到同样的问题,原因是 Forms 进程创建了一个子进程来执行host()命令,并且该子进程继承了父进程的环境变量,这些环境变量来自default.env(或服务器配置中定义的其他 env 文件)。该文件中定义了一个PATH变量,但它不包含通常的/binor /usr/bin,因此除非指定完整路径,否则这些命令将不会执行。

解决方案是在执行的脚本(通过export PATH=$PATH:...)或在default.env. 我在脚本中设置了它,因为了解 Oracle,不能保证修改default.env不会破坏某些东西。

于 2015-12-10T12:07:57.283 回答