3

最近我在玩一种很棒的编程语言red。在我将它下载到我的 Linux Box 上并输入red --version之后,我得到了一些意想不到的东西:

$ red --version
GNU ed version 0.2

然后我查了ed的手册,说也是named red,但不解释为什么?那么有没有人知道ed名字的秘史呢,说不定是个奇葩的故事。;-)

4

2 回答 2

2

阅读 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....

GNU ed 手册

ed的受限版本red,只能编辑当前目录下的文件,不能执行shell命令。

顺便说一句,也许你的red编译器安装在一些不同的路径上,比如/usr/local/bin/red. 尝试完整地输入这个(或一些类似的)路径来调用它。了解PATHeg 在environ(7)execvp(3)等中的作用...也许编辑您的.bashrc以更改您的PATH或添加符号链接 from $HOME/bin/redto eg/usr/local/bin/red

于 2013-10-12T10:21:27.967 回答
1

前段时间我也遇到了同样的情况,还以为 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

这引出了我几个月前提出的一个观点:我发现“红色”这个名字有点过于笼统,可能会造成混淆。虽然谷歌搜索“rebo​​l”会导致许多相关匹配,但谷歌搜索“red”会导致大量不相关的内容。然而,正如@DocKimbel(Red 的作者)指出的那样,谷歌搜索“红色语言”会立即导致相关的 URL。

现在,该怎么办:

  1. 来自 Red 方面:将“red”更改为另一个名称,例如 red_lang ?这样 ed 和它的红色“别名”仍然可以使用
  2. 从 ed 的角度来看:进入包并让它删除红色符号链接。我们应该仔细检查依赖关系。

请注意,第一个选项是关于编程的:现在即将实现的 Red 的未来取决于这些“细节”,它关系到所有即将使用 Red 编码的程序员(很多!;))。第二个选项根本与编程无关:mea culpa。

正如@HostileFork 在https://chat.stackoverflow.com/rooms/291/rebol-and-red上指出的那样,ed 是一个相当老式的工具:我想它必须仍然/仅由某些脚本使用,而不是这么多“正常思维”的人。

(我有点跑题了,不是吗?抱歉……)

于 2013-10-13T10:33:10.483 回答