我似乎无法通过 shebang 将 bash 脚本转换为可执行文件。我的代码看起来像
#!/bin/bash
echo "hello"
它位于名为 test.sh 的文件中。我正在尝试让它使用命令运行
./test.sh
在命令行中,但我刚刚收到权限被拒绝的错误。当我将其更改为
sudo ./test.sh
我刚刚收到找不到命令。我可以通过命令行将文件转换为可执行文件:
chmod +x test.sh
代码正确输出
hello
我已经尝试过这些命令
which bash
它返回了目录 /bin/bash 并且我还在我的 .bashrc 中导出了此路径但无济于事。任何想法将不胜感激,谢谢!我运行 Linux Mint 只是为了清楚起见。
chmod +x test.sh
设置可执行位正是所需要的。脚本需要 shebang 行 和 可执行权限才能运行。否则,您必须使用
bash test.sh
显式调用 shell。可执行位可让您编写 ./test.sh
。
sh-bang 表示如果您想从您正在运行脚本的 shell 之外的 shell 运行脚本