从脚本的角度使用dlang

从脚本的角度使用dlang,d,D,所以我只是看了一下在dlang网站上发布的示例:我想做一些类似于第二个版本的事情,在这个版本中定义#/usr/bin/env rdmd作为文件的第一行。我复制并粘贴了他们所拥有的内容的精确副本,只是为了尝试一下,每次我尝试执行/myprog.d时,我都会得到::没有这样的文件或目录 我错过了什么?如果我运行rdmd./myprog.d它运行得很好,因此我知道rdmd在正确的路径中一些Unixen在/bin中有env,而其他Unixen在/usr/bin中有env。通过执行which env找到您

所以我只是看了一下在dlang网站上发布的示例:我想做一些类似于第二个版本的事情,在这个版本中定义
#/usr/bin/env rdmd
作为文件的第一行。我复制并粘贴了他们所拥有的内容的精确副本,只是为了尝试一下,每次我尝试执行
/myprog.d
时,我都会得到:
:没有这样的文件或目录


我错过了什么?如果我运行
rdmd./myprog.d
它运行得很好,因此我知道rdmd在正确的路径中

一些Unixen在
/bin
中有env,而其他Unixen在
/usr/bin
中有env。通过执行
which env
找到您的位置。那就用那个吧。

这个不错(硬)的。我喜欢这类问题。您有错误的换行符delimeter,可能是\r\n而不是\n

您是否也使该文件可执行
chmod+xmyprog.d
,但如果您不这样做,我认为错误将导致权限被拒绝,而不是没有这样的文件。。。另一件需要检查的事情是
/usr/bin/env
命令是否在您的系统上实际运行。您最好将rdmd的直接路径放在那里,比如
#/home/me/dmd2/linux/bin32/rdmd
是我在我的计算机上执行它的方式。它是可执行的(774),并且
/usr/bin/env
在我的系统上,我可以执行
/usr/bin/env rdmd myproog.d
,并且工作正常。放置绝对路径不起作用,因为bash抱怨它是一个糟糕的解释器。嗯,它可能试图在64位系统上运行32位版本,反之亦然。。。事实上,我几乎可以肯定这就是问题所在,它给出了“没有这样的文件或目录”,因为比特的/lib/ld Linux不存在。因此,修复程序可能只是删除其中一个,以便强制从路径“闻起来”使用另一个,就像rdmd不在您的路径中一样。
echo$path
/usr/local/bin:/usr/local/sbin:/usr/sbin:/home/me/.local/bin:/home/me/bin
哪个rdmd
/usr/bin/rdmd,原来我忘了标记unix样式的结尾,因为我在windows计算机上通过网络共享编辑了它。这是我几乎没有完成大学学业的原因之一(makefile:中的换行符不好)。