Linux Shell脚本核心是掌握shebang、变量、条件判断和循环语法:首行必须#!/bin/bash,变量赋值等号无空格,引用推荐${name},条件用[ ]或[[ ]]且注意空格,循环用for/while,建议用shellcheck检查。

写 Linux Shell 脚本不难,核心是掌握几个关键语法点,再配合实际命令组合使用。脚本本质就是把你在终端里一条条敲的命令,按逻辑顺序存成文件,然后交给 shell(比如 bash)去执行。
脚本开头必须写 #!/bin/bash
这是“shebang”行,告诉系统用哪个解释器运行这个文件。绝大多数情况用 bash:
- 第一行必须是 #!/bin/bash(注意:# 和 ! 之间不能有空格)
- 保存为 hello.sh 后,要先加执行权限:chmod +x hello.sh
- 运行方式是 ./hello.sh,不是 sh hello.sh(后者会绕过 shebang,可能用错 shell)
变量定义和引用很简单,但要注意等号两边不能有空格
Shell 变量不声明类型,赋值直接写:
- 定义:name="Alice"(= 号左右绝对不能有空格)
- 引用:echo "Hello, $name" 或 echo "Hello, ${name}"(推荐花括号,尤其拼接字符串时更安全)
- 环境变量(如 PATH、HOME)可以直接用,无需定义;想让变量在子进程中可用,加 export,比如 export MY_VAR="test"
条件判断用 [ ] 或 [[ ]],记得空格和结尾的 ]
if 判断最常用,语法看着简单,但空格是硬性要求:
- 基本结构:if [ "$name" = "Alice" ]; then ... fi
- [ ] 是命令(等价于 test),所以 [ 后、] 前都必须有空格
- 字符串比较用 =(不是 ==),数字比较用 -eq、-lt 等
- 推荐用 [[ ]](bash 扩展),支持正则和更自然的语法,比如 [[ $file =~ \.log$ ]]
循环就两个主力:for 和 while
处理列表或持续检查状态,够用了:
- for i in 1 2 3; do echo $i; done —— 遍历固定项
- for file in *.txt; do cat "$file"; done —— 通配符展开后遍历(注意加引号防空格名出错)
- while [ $count -lt 5 ]; do echo $count; ((count++)); done —— 条件满足时重复执行
不复杂但容易忽略:写完多用 shellcheck 工具检查(sudo apt install shellcheck),它能立刻指出空格、引号、未定义变量等常见问题。










