仅包含 Bash 脚本的开头部分,即 Shebang 行,它位于脚本文件的第一行,明确指定了该脚本应由系统的 Bash 解释器来执行,这一行对于脚本的正确运行至关重要,它定义了脚本的运行环境,确保系统调用正确的 shell 来解析和执行后续的命令序列。
Ubuntu执行编好的Shell脚本:从编写到运行的完整指南
在 Ubuntu 系统中,Shell 脚本是自动化任务、批量处理文件以及管理系统配置的强大工具,对于许多 Linux 最大的困惑往往不是如何编写代码,而是如何让 Ubuntu 正确地执行编好的 shell 脚本。
本文将带你一步步了解从创建脚本文件到成功运行它的全过程,帮助你掌握这一核心技能。
第一步:编写你的脚本
你需要创建一个文本文件,并在其中编写 Shell 命令,你可以使用任何文本编辑器,nano、vim 或 gedit,对于初学者,nano 是最友好的选择。

打开终端,输入以下命令创建一个名为 test.sh 的文件:
nano test.sh
在打开的编辑器中,输入以下简单的脚本内容(打印一行文字):
echo "当前日期和时间是:$(date)"
保存并退出(在 nano 中按 Ctrl+O,回车保存,然后按 Ctrl+X 退出)。
第二步:赋予执行权限(关键步骤)
这是很多初学者容易忽略的一步,仅仅创建文件并不代表它就可以被运行,在 Linux 系统中,文件默认只有“读”和“写”权限,没有“执行”权限。
你需要使用 chmod 命令来改变文件权限,添加执行权限。
输入以下命令:
chmod +x test.sh
chmod:Change Mode(修改模式)的缩写。+x:添加执行权限。test.sh:文件名。
你就可以通过查看文件属性来确认权限的变化了(例如使用 ls -l test.sh,你会看到 x 标志出现在所有者、组和其他用户的权限列中)。
第三步:执行脚本
你的脚本已经准备就绪,在 Ubuntu 中,有三种常见的方式来执行编好的 shell 脚本:
直接执行(推荐) 这是最标准的方式,直接在文件名前加上 ,表示“在当前目录下执行”。
./test.sh
使用 Bash 解释器
如果你不想给脚本添加执行权限,或者脚本第一行的 #!/bin/bash 指向了其他解释器,你可以显式地调用 Bash 来读取并执行脚本。
bash test.sh
使用 Sh 解释器
sh 是 bash 的轻量级版本,如果脚本很简单且不依赖 Bash 特有的功能,也可以使用 sh 来运行。
sh test.sh
常见问题与解决方案
-
Permission denied(权限被拒绝):
- 原因: 你忘记了
chmod +x这一步。 - 解决: 重新运行
chmod +x your_script.sh。
- 原因: 你忘记了
-
command not found(找不到命令):
- 原因: 脚本中引用的命令不在系统的 PATH 环境变量中,或者拼写错误。
- 解决: 检查脚本中的命令拼写,或者确保命令已安装。
-
No such file or directory:
- 原因: 你可能忘记在文件名前加 ,或者脚本不在当前目录下。
- 解决: 使用
ls查看当前目录,或使用绝对路径(如/home/user/scripts/test.sh)。
在 Ubuntu 上执行编好的 shell 脚本,核心流程可以概括为:编写代码 -> 添加执行权限 -> 运行脚本,掌握这一流程,你就打开了自动化 Linux 管理的大门,通过不断的练习,你可以编写出复杂的脚本来自动化日常繁琐的工作。

