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