Javascript Can';t link命令到节点脚本文件,没有这样的文件或目录

Javascript Can';t link命令到节点脚本文件,没有这样的文件或目录,javascript,node.js,linux,raspberry-pi,raspbian,Javascript,Node.js,Linux,Raspberry Pi,Raspbian,我在linux机器上尝试使用npm将一个命令链接到javascript文件时遇到了麻烦。只需假设一些简单的脚本和package.json: package.json "bin": { "test": "./test.js" }, $ sudo npm install $ sudo npm link test.js #!/usr/bin/env node console.log("test"); 安装 "bin": { "test": "./test.js" }, $ sudo n

我在linux机器上尝试使用
npm
将一个命令链接到javascript文件时遇到了麻烦。只需假设一些简单的脚本和
package.json

package.json

"bin": {
  "test": "./test.js"
},
$ sudo npm install
$ sudo npm link
test.js

#!/usr/bin/env node
console.log("test");
安装

"bin": {
  "test": "./test.js"
},
$ sudo npm install
$ sudo npm link
在windows计算机上执行此操作不会导致任何问题。一切正常。但在linux/Raspbian系统上,它一直告诉我:

:没有这样的文件或目录

我已经将node的二进制文件链接到:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node

当然,我已经更新到node的最新版本,
7.10.0
。但没有任何帮助。消息仍然出现。我不知道出了什么问题……

经过长时间的搜索,问题似乎是windows行的结尾。它们需要转换为unix风格的结尾。这是我唯一的改变,现在它起作用了。这个问题只属于
shebang
行,因为
节点
解释器本身对原始文件没有问题

对于此测试,我安装并使用了
dos2unix
,它可以转换文件:

$ sudo apt install dos2unix
$ sudo dos2unix test.js

执行此操作后,初始的
test
命令就像一个符咒一样工作。因此,我已将开发版本上的文件更改为unix样式,因此我不再需要运行该文件。

如果执行
哪个测试
`哪个测试
`(包括反勾号)@sgtdck首先显示
/usr/bin/test
,然后显示
:没有这样的文件或目录