脚本、Shebang 与解释执行
Shell 脚本不是「程序」,是「写给 Shell 读的命令清单」。它没有编译期,语法错误往往在运行到那一行时才暴露。
SH脚本是什么
把多条命令写进一个文本文件,交给 Shell 逐行读取并调用系统调用执行。
.sh 后缀只是约定
修改后立即可测,无需编译
#!Shebang
脚本第一行指定解释器。
#!/bin/bash
没有它,系统会用默认 Shell 执行,行为可能不一致
$?退出状态
$? 保存上一条命令的返回值。
0 = 成功,非 0 = 失败或异常
是脚本分支判断的基础
▶三种执行方式
source 影响当前 Shell 环境
bash a.sh 开子进程
./a.sh 需先 chmod +x
bash a.sh 而不是 ./a.sh:前者不依赖可执行权限,也不会因文件权限或格式(CRLF 行尾)导致「Permission denied / bad interpreter」,教学与排错阶段最省心。