我的 Nodejs 环境是
which node
输出 /usr/local/bin/node
/usr/local/bin/node
然后我创建了一个 index.js 文件
index.js
#!/usr/local/bin node console.log("hello")
然后
chmod +x index.js ./index.js
但是并没有像我期待的那样打出 hello 来,直接过去了,没输出任何信息,也没报错,但是我看很多文章上面写的都能输出信息。
有遇到过这个问题的同学吗?
#!/usr/local/bin/node
或者
#!/usr/bin/env node
#1 楼 @rei 还是不行,没有任何信息输出,我这里是执行的 sudo ./index.js 因为执行 ./index.js 会有权限问题
sudo ./index.js
./index.js
-bash: ./index.js: /usr/local/bin: bad interpreter: Permission denied
会和这个有关系吗?我在公司和家里的电脑上都试过了,都遇到这个问题了。
#1 楼 @rei 如果是 #!/usr/local/bin/node 就直接报错了
-bash: ./index.js: /usr/local/bin/node^M: bad interpreter: No such file or directory
如果是 #!/usr/bin/env node 也报错
: No such file or directory
同样 我写了个 test.ruby
test.ruby
#!/usr/local/bin/ruby p "hello"
执行
./test.ruby
时报错
-bash: ./test.ruby: /usr/local/bin/ruby^M: bad interpreter: No such file or directory
sudo ./test.ruby
时不报错,但是没任何反应,不输出信息。 而直接
/usr/local/bin/ruby test.ruby
却能输出。
http://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter
#5 楼 @rei 谢谢,真好了,我用 dos2unix 做了一下转换
dos2unix
dos2unix index.js