Shell 脚本入门教程

柳三千

一、基础认知

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` 调试执行

文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码