我正在写一个脚本,位于我/ $ 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/
我浏览了文档,但找不到任何有用的信息。
有谁知道如何实现这一目标? 请注意,对于想要编写某种实用程序的人来说,这肯定是一个非常常见的问题。
答案 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!