本文共 1752 字,大约阅读时间需要 5 分钟。
Shell编程入门指南
Shell概述
Shell是 Unix/Linux 系统中的用户界面命令行解释器,它将应用程序与 Linux 内核及硬件相连接。Shell 提供了一个灵活的命令行环境,用户可以通过输入命令逐步完成操作。Shell 变量
Shell 变量用于存储程序运行时的临时数据,变量名称通常以大写字母开头。2.1 系统变量
系统变量是 Shell 预定义的环境变量,用于传递程序运行时的环境信息,例如 PATH(执行路径)、HOME(用户主目录)等。2.2 自定义变量
用户可以定义自己的变量,通过赋值操作将命令输出结果存储起来,便于后续使用。2.3 静态变量
静态变量在 Shell 中无法用 unset 命令清除,通常用于存储常量值或配置信息。设置环境变量
环境变量可以通过 export 命令传递给子进程,常见的做法是将多行注释写入 .bashrc 文件中,方便快速配置开发环境。位置参数变量
位置参数变量(Positional Arguments Variables)用于接收命令行输入参数,通过 $1 到 $9 等表示方式访问参数值。4.1 常用位置参数变量示例
$1 表示第一个参数,$2 表示第二个参数,以此类推。4.2 位置参数变量的默认值
若命令行参数不足,Shell 提供了默认值设定方式,可减少程序依赖命令行参数的复杂性。预定义变量
Shell 提供了多个预定义变量,用于简化常见操作。例如,$? 表示上一条命令的退出状态码,$@ 表示命令行参数的拆分结果。Shell 运算符
Shell 提供多种运算符,用户可以通过组合运算符完成数据处理。例如,使用 + 运算符进行数值相加, * 运算符进行数值相乘。6.1 运算符应用示例
将两个变量值相加:a=$1 + $27.1 if 判断语句
if [条件] 则执行后续命令。常用条件包括 -e(命令存在性)、-d(目录存在性)、-f(文件存在性)等。7.2 case 判断语句
case 语句比 if 语句更灵活,支持多种匹配模式,如字符串匹配、文件扩展名匹配等。8.1 for 循环
for 循环用于遍历集合元素,常用于批量处理文件或项。8.2 while 循环
while 循环用于重复执行命令,直到满足退出条件。读取控制台输入
Shell 提供 read 命令用于读取用户输入,用户可以将输入值存储到变量中。Shell 函数与自定义函数
Shell 提供多种系统函数(如 echo、date)和自定义函数(如定义函数、函数库)。10.1 系统函数示例
echo 输出文本内容:echo "Hello World"date 显示当前时间:date10.2 自定义函数示例
定义函数:function myfunc { echo "这是一个自定义函数"; }调用函数:myfunc#!/bin/bash# 定时备份脚本# 每天备份当前目录到备份目录# 并清除10天前的文件# 定义备份目录BACKUP_DIR=/data/backups# 定义日志文件LOG_FILE=/data/logs/backup.log# 备份当前目录current_date=$(date +%Y%m%d)# 创建备份文件echo "开始备份:$(date)" >> $LOG_FILEtar -czf $BACKUP_DIR/$current_date.tar.gz *# 清除10天前的文件echo "开始清除10天前文件:$(date)" >> $LOG_FILEfind $BACKUP_DIR -type d -ctime "-10" -exec rm -r {} \;# 完成备份与清除echo "备份与清除完成:$(date)" >> $LOG_FILE
以上脚本实现了每天定时备份当前目录到指定备份目录,并自动清除10天前的备份文件功能。
转载地址:http://rekfk.baihongyu.com/