linux - shebang 无法在 linux 中运行 bash 脚本
问题描述
我似乎无法通过 shebang 将 bash 脚本转换为可执行文件。我的代码看起来像
#!/bin/bash
echo "hello"
这是在一个名为test.sh的文件中。我正在尝试使用命令运行它
./test.sh
在命令行中,但我只收到权限被拒绝的错误。当我将其更改为
sudo ./test.sh
我只是找回了那个command not found。我可以通过命令行命令将文件转换为可执行文件:
chmod +x test.sh
并且代码正确输出
hello
我已经尝试过命令
which bash
它返回了目录/bin/bash并且我还在我的.bashrc中导出了这个路径,但无济于事。任何想法将不胜感激谢谢!为了清楚起见,我正在运行 Linux mint。
解决方案
chmod +x test.sh
设置可执行位正是需要的。脚本需要 shebang 行和可执行权限才能运行。否则,您必须使用例如 . 显式调用 shell bash test.sh
。可执行位允许您编写./test.sh
.
推荐阅读
- visual-studio-code - VSCode intellisense jsconfig.json 排除 src 文件夹的笑话类型
- css - 如何在 iOS 版本的 Chrome 浏览器中删除自动完成字段的默认样式
- c - QEMU edu PCI 设备中奇怪的寄存器十六进制值 0x010000edu
- php - 我的模块不工作并显示错误页面
- python - Django:如何在生产中设置新的静态路径?
- javascript - 递归 for 循环上下文中的 NaN
- c++ - MongoDb/mongocxx update_one 和 find_one 极慢
- javascript - 如何获取单元格值(来自 Google 表单的 Sheet1,来自公式的 Sheet2)到谷歌文档模板
- python - PyCall 接收 Numpy 并转换为本机类型元素
- .net - Blazor System.Net.Sockets.SocketException