我试图在CentOS6中运行bash脚本。如果没有shebang头,它就无法工作。然而,当我包括shebang时,它会显示一条错误消息!
这是一个名为test.sh的脚本。我的$HOME/bin目录中有它。我跑了
chmod 777
以消除任何权限问题。我验证了它使用的是Unix行尾。。。
test_var=test
echo $test_var
我是这样执行的:
sh ~/bin/test.sh
我从中得到以下结果:
/home/myusername/bin/test.sh: line 1: test_var=test: command not found
现在我添加了一个shebang,所以脚本变成:
#!/bin/bash
test_var=test
echo $test_var
当我运行时,我会得到:
/home/myusername/bin/test.sh: line 1: #!/bin/bash: No such file or directory
test
因此,一旦添加了shebang,它就没有问题分配变量,但它不喜欢同时使用shebang!
我检查并
/bin/bash
事实上确实存在。我试了一组其他的shebang,得到了同样的结果。我甚至尝试了一些明显无效的东西,即。
#!/fake/path
,结果是一样的!
如果没有添加shebang,脚本就无法运行(无论是什么),但它仍然抱怨shebang(不管是什么)!