Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shebang无法在linux中运行bash脚本_Linux_Bash_Shebang - Fatal编程技术网

shebang无法在linux中运行bash脚本

shebang无法在linux中运行bash脚本,linux,bash,shebang,Linux,Bash,Shebang,我似乎无法通过shebang将bash脚本转换为可执行文件。我的代码看起来像 #!/bin/bash echo "hello" 其中,它位于名为test.sh的文件中。我正试着用命令运行它 ./test.sh 在命令行中,但我刚刚收到权限被拒绝的错误。当我把它改成 sudo ./test.sh 我刚刚返回未找到的命令。我可以通过命令行将文件转换为可执行文件: chmod +x test.sh 代码正确输出 hello 我试过命令了 which bash 它返回了目

我似乎无法通过shebang将bash脚本转换为可执行文件。我的代码看起来像

#!/bin/bash
echo "hello"
其中,它位于名为test.sh的文件中。我正试着用命令运行它

./test.sh
在命令行中,但我刚刚收到权限被拒绝的错误。当我把它改成

sudo ./test.sh
我刚刚返回未找到的命令。我可以通过命令行将文件转换为可执行文件:

chmod +x test.sh
代码正确输出

hello
我试过命令了

which bash
它返回了目录/bin/bash,我也在我的.bashrc中导出了这个路径,但没有用。任何想法都将不胜感激,谢谢!我运行LinuxMint只是为了清晰起见

chmod +x test.sh

设置可执行位正是需要的。脚本需要一个shebang行和可执行权限才能运行。否则,您必须显式地调用shell,例如,
bash test.sh
。可执行位允许您编写
/test.sh

是否在命令行上输入“/test.sh”或其他内容?你得到了什么消息?还有什么需要修复?不。你需要有执行权限才能执行。shebang只告诉执行者使用什么shell或其他程序(perl等)来读取命令。你做到了。#/bin/bash表示要使用bash。chmod+x表示让您以命令的形式执行该文件。如果我使用chmod+test.sh,则脚本在没有shebang的情况下工作。那么,shebang的目的是什么呢?