最近我在玩一种很棒的编程语言red。在我将它下载到我的 Linux Box 上并输入red --version
之后,我得到了一些意想不到的东西:
$ red --version
GNU ed version 0.2
然后我查了ed的手册,说也是named red
,但不解释为什么?那么有没有人知道ed名字的秘史呢,说不定是个奇葩的故事。;-)
阅读 GNU ed 文档,关于调用 ed的章节。运行red
就像运行,ed -r
即在......中运行它。
-r
--restricted
Run in restricted mode. This mode disables edition of files out of
the current directory and execution of shell commands.
顺便说一句,bash
(和其他几个实用程序)也有一个受限模式,例如当被调用为rbash
....
ed的受限版本red,只能编辑当前目录下的文件,不能执行shell命令。
顺便说一句,也许你的red
编译器安装在一些不同的路径上,比如/usr/local/bin/red
. 尝试完整地输入这个(或一些类似的)路径来调用它。了解PATH
eg 在environ(7)和execvp(3)等中的作用...也许编辑您的.bashrc
以更改您的PATH
或添加符号链接 from $HOME/bin/red
to eg/usr/local/bin/red
前段时间我也遇到了同样的情况,还以为 Red 是为我最喜欢的 Debian 打包的!海拉斯,不是。
我注意到属于 ed 包的“红色”可执行文件是/仅是 ed 的符号链接,至少在我的 debian 上是这样:
# pierre@autan: ~ < 2013_10_13__12_16_23 >
ll /usr/bin/red
lrwxrwxrwx 1 root root 7 mai 12 19:10 /usr/bin/red -> /bin/ed
这引出了我几个月前提出的一个观点:我发现“红色”这个名字有点过于笼统,可能会造成混淆。虽然谷歌搜索“rebol”会导致许多相关匹配,但谷歌搜索“red”会导致大量不相关的内容。然而,正如@DocKimbel(Red 的作者)指出的那样,谷歌搜索“红色语言”会立即导致相关的 URL。
现在,该怎么办:
请注意,第一个选项是关于编程的:现在即将实现的 Red 的未来取决于这些“细节”,它关系到所有即将使用 Red 编码的程序员(很多!;))。第二个选项根本与编程无关:mea culpa。
正如@HostileFork 在https://chat.stackoverflow.com/rooms/291/rebol-and-red上指出的那样,ed 是一个相当老式的工具:我想它必须仍然/仅由某些脚本使用,而不是这么多“正常思维”的人。
(我有点跑题了,不是吗?抱歉……)