一、基础认知
1. 文件扩展名:`.sh`
2. 脚本开头(必须):`#!/bin/bash`
3. 执行方式:
- `bash script.sh`
- 添加执行权限后 `./script.sh`
二、基础语法
1. 变量操作 name="Alice" # 定义变量(等号两边不能有空格) echo "Hello $name" # 使用变量 readonly PI=3.14 # 只读变量 unset name # 删除变量
2. 字符串处理 str="Hello World" echo ${#str} # 获取长度 → 11 echo ${str:0:5} # 截取子串 → Hello echo ${str/World/John} # 替换 → Hello John
3. 数组操作 colors=("red" "green" "blue") echo ${colors[1]} # 访问元素 → green echo ${#colors[@]} # 数组长度 → 3
三、流程控制
1. 条件判断 if [ $a -gt $b ]; then echo "a 大于 b" elif [ $a -eq $b ]; then echo "a 等于 b" else echo "a 小于 b" fi
2. 循环结构 # for 循环 for i in {1..5}; do echo "Number: $i" done
#while 循环 count=1 while [ $count -le 3 ]; do echo "Count: $count" ((count++)) done
四、函数使用
function greet() { echo "Hello, $1!" } greet "Bob" # 输出:Hello, Bob!
五、文件操作
# 判断文件存在 if [ -f "test.txt" ]; then echo "文件存在" fi
# 读取文件内容 while read line; do echo $line done < file.txt
六、常用运算符
- 数值比较:`-eq`, `-ne`, `-gt`, `-lt`
- 文件判断:`-d`(目录), `-f`(文件), `-r`(可读)
- 逻辑运算:`&&`(与), `||`(或)
七、实战练习
### 练习 1:备份脚本 ```bash #!/bin/bash backup_dir="/backup" if [ ! -d "$backup_dir" ]; then mkdir $backup_dir fi cp *.log $backup_dir echo "备份完成" ``` ### 练习 2:数字猜谜 ```bash #!/bin/bash target=$((RANDOM%100+1)) while true; do read -p "输入数字(1-100): " guess if [ $guess -lt $target ]; then echo "猜小了" elif [ $guess -gt $target ]; then echo "猜大了" else echo "恭喜猜中!" break fi done ```
八、注意事项
1. 所有符号与内容之间必须保留空格
2. 使用 `$()` 代替反引号执行命令
3. 调试脚本可添加 `set -x` 命令
---
建议练习步骤:
1. 先尝试运行示例代码
2. 修改示例中的变量值观察变化
3. 尝试编写:
- 文件批量重命名脚本
- 系统资源监控脚本
- 自动创建用户脚本
---
遇到报错时:
- 检查空格使用 `[ $a -eq $b ]`
- 检查变量是否初始化
- 使用 `bash -x script.sh` 调试执行
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。