Linux Shell 脚本编程:从入门到实战

Linux Shell 脚本是一种强大的自动化工具,通过编写脚本可以批量执行命令、管理系统任务或处理复杂逻辑。以下是 Shell 脚本的详细使用指南:

图片[1]_Linux Shell 脚本编程:从入门到实战_知途无界

1. 脚本基础

1.1 创建脚本文件

#!/bin/bash
# 这是一个注释
echo "Hello, World!"  # 输出文本
  • 第一行 #!/bin/bash(Shebang):指定解释器(如 /bin/bash/bin/sh)。
  • 注释:以 # 开头(Shebang 除外)。

1.2 保存与权限

nano script.sh      # 使用文本编辑器创建文件
chmod +x script.sh  # 添加可执行权限

2. 运行脚本

./script.sh          # 直接执行(需可执行权限)
bash script.sh       # 显式指定解释器(无需权限)
sh script.sh         # 使用 sh 解释器
source script.sh     # 在当前 Shell 中执行(影响当前环境)

3. 变量与参数

3.1 变量定义与使用

name="Linux"        # 定义变量(无空格)
echo "Hello, $name" # 使用变量(推荐双引号)
echo "Hello, ${name}!" # 大括号明确变量边界
  • 注意:变量名区分大小写,默认全局作用域。

3.2 位置参数

echo "第一个参数: $1"   # 脚本的第一个参数
echo "所有参数: $@"     # 所有参数列表
echo "参数个数: $#"     # 参数数量
  • $0 表示脚本名称,$? 表示上一条命令的退出状态(0 表示成功)。

4. 输入与输出

4.1 用户输入

read -p "请输入名字: " username
echo "欢迎, $username!"

4.2 输出重定向

echo "内容" > file.txt    # 覆盖写入
echo "追加" >> file.txt   # 追加写入
command 2> error.log     # 重定向错误输出
command &> all.log       # 重定向所有输出

5. 流程控制

5.1 条件判断

if [ "$1" -eq 10 ]; then
    echo "参数等于10"
elif [ "$1" -lt 5 ]; then
    echo "参数小于5"
else
    echo "其他情况"
fi
  • 常用测试符
  • 数值:-eq(等于)、-gt(大于)、-le(小于等于)。
  • 字符串:=, !=, -z(空字符串)。
  • 文件:-f(存在且为文件)、-d(存在且为目录)。

5.2 循环

# for 循环
for i in {1..5}; do
    echo "数字: $i"
done

# while 循环
count=1
while [ $count -le 3 ]; do
    echo "计数: $count"
    ((count++))
done

6. 函数

greet() {
    local name="$1"  # local 定义局部变量
    echo "Hello, $name"
}
greet "Alice"        # 调用函数并传参

7. 常用工具与技巧

7.1 命令替换

current_date=$(date)  # 或 `date`
echo "现在时间是: $current_date"

7.2 算术运算

sum=$((3 + 5))       # 使用 $(( ))
echo "3 + 5 = $sum"

7.3 调试脚本

bash -x script.sh    # 打印每条执行的命令
set -e               # 脚本中设置:遇到错误立即退出

8. 实际示例

备份目录

#!/bin/bash
backup_dir="/tmp/backup_$(date +%Y%m%d)"
mkdir -p "$backup_dir"
cp -r /path/to/source/* "$backup_dir"
echo "备份完成: $backup_dir"

定时任务(Cron)

crontab -e
# 每天凌晨3点执行脚本
0 3 * * * /path/to/script.sh

9. 注意事项

  1. 变量引用:始终用双引号包裹变量(如 "$var"),避免空格或特殊字符导致的问题。
  2. 权限管理:敏感操作(如删除文件)需确认权限。
  3. 跨平台兼容性:不同 Shell(Bash、Zsh、Dash)语法可能有差异,建议明确指定 #!/bin/bash

通过以上内容,你可以快速掌握 Shell 脚本的基础和进阶用法。实践是学习的关键,建议从简单任务开始逐步尝试复杂脚本!

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞53 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容