核心概念shell-scripting
脚本解释器行 Shebang
理解脚本首行如何选择解释器,以及直接执行、PATH 查找和可执行权限之间的关系。
Linux 把以 #! 开头的可执行文本文件视为解释器脚本(interpreter script)。首行指定运行脚本的解释器:
#!/usr/bin/env bash这里 /usr/bin/env 是内核启动的程序,bash 由 env 按当前 PATH 查找。
chmod u+x script.sh./script.sh直接运行 ./script.sh 时,需要:
- 文件具有执行权限;
- 首行解释器存在;
- 脚本内容符合该解释器语法。
运行 bash script.sh 时,是显式启动 Bash 读取文件,不依赖脚本自身的 shebang 和执行位。
#!/usr/bin/env bash:适合 Bash 不固定安装在/bin/bash的环境,但结果依赖PATH。#!/bin/sh:只适用于符合目标系统/bin/sh语法的脚本,不能默认使用 Bash 专有语法。- 精简 BusyBox 或 Buildroot 系统可能没有 Bash,发布脚本前应先运行
command -v bash。
安全敏感或特权环境不应依赖未经控制的 PATH 查找解释器。
- 概念:文件权限
- 命令:chmod、nano
- 实战:每日系统巡检脚本
- 学习记录:第 2 天:Bash 系统巡检脚本