我已在Windows 10的Cygwin中安装了Regina Rexx软件包(版本3.9.1)。为了对其进行测试,我编写了以下代码:
呼叫者:
#!/usr/bin/rexx
x = 'callee'() ; say 'callee returned' x ; exit
被叫方:
#!/usr/bin/rexx
say 'In callee' ; return 42
当我调用呼叫者时,我希望看到:
> ./caller
In callee
callee returned 42
实际上,这正是我要做的当两个exec都位于我的当前目录中时所看到的。但是,当我将它们移动到$ PATH中的其他目录并调用调用程序时,我看到:
> ./caller
caller returned In callee
这是...意外。如果Regina Rexx手册中对此行为有解释,我看不到。我想念什么吗?谢谢。
答案 0 :(得分:3)
事实证明,只有Rexx执行程序位于REGINA_MACROS变量中提到的目录中时,它们才可以用作外部函数,
export REGINA_MACROS="${HOME}/subdir:/maybe/somewhere/else"
否则,被调用的例程将被视为另一个可执行文件。返回值是所有标准输出行之间带有空格定界符。所有的stderr输出都照常发送到屏幕(或重定向)。