如何从rebol脚本中读取当前目录

时间:2013-07-20 09:30:24

标签: rebol

我正在写一个脚本,位于我/ $ PATH中的〜/ bin /。 我想从系统的任何地方调用这个脚本(GNU / Linux,但这不重要),并阅读当前目录的内容。

不幸的是,脚本总是读取〜/ bin / contents,这是脚本本身所在的位置。

示例:

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
cat ~/bin/test.r 
#!/usr/bin/rebol
rebol []
print what-dir

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
pwd
/home/pierre

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
test.r
/home/pierre/bin/

/ usr / bin / rebol中的解释器是Rebol2 / view。 如果我使用Rebol3,结果是一样的,只有它取消引用我的〜/ bin / symlink:

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
cat ~/bin/test.r 
#!/usr/bin/rebol3
rebol []
print what-dir

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
test.r
/home/pierre/heaume_pierre/bin_scripts/

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
ll | grep bin
lrwxrwxrwx  1 root   root         26 déc.  29  2010 bin -> heaume_pierre/bin_scripts/

现在,从控制台,它按预期工作:

  # pierre@autan: ~        < 2013_07_20__11_18_57 >
rebol
>> print what-dir 
/home/pierre/

我浏览了文档,但找不到任何有用的信息。

有谁知道如何实现这一目标? 请注意,对于想要编写某种实用程序的人来说,这肯定是一个非常常见的问题。

2 个答案:

答案 0 :(得分:4)

Rebol2和Rebol3 system/options/path都是你的朋友。

答案 1 :(得分:0)

现在,在更改dir到system / options / path后,它按预期工作:

  # pierre@autan: ~        < 2013_07_20__16_40_26 >
cat ~/bin/test.r 
#!/usr/bin/rebol3
rebol []
change-dir system/options/path
print what-dir

  # pierre@autan: ~        < 2013_07_20__16_40_26 >
test.r
/home/pierre/

我会在大多数脚本的开头做这个。 谢谢,onetom!