Shell 脚本入门
Shell 脚本是将多条命令组合成可重复执行的程序,是自动化的起点。
Shell 脚本入门
第一个脚本
创建 hello.sh:
#!/bin/bash
# 这是注释
echo "Hello, World!"
echo "当前用户:$(whoami)"
echo "当前目录:$(pwd)"
运行:
chmod +x hello.sh # 添加执行权限
./hello.sh # 执行
变量
#!/bin/bash
NAME="Alice" # 定义变量(等号两边不能有空格!)
AGE=30
echo "姓名:$NAME"
echo "年龄:${AGE}岁"
# 命令赋值
TODAY=$(date +%Y-%m-%d)
echo "今天:$TODAY"
参数
#!/bin/bash
echo "脚本名:$0"
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "所有参数:$@"
echo "参数个数:$#"
./script.sh hello world
# 第一个参数:hello
# 第二个参数:world
条件判断
#!/bin/bash
if [ -f "config.yaml" ]; then
echo "配置文件存在"
else
echo "配置文件不存在,创建中..."
touch config.yaml
fi
循环
#!/bin/bash
# 遍历文件
for file in *.txt; do
echo "处理:$file"
done
# 数字循环
for i in {1..5}; do
echo "第 $i 次"
done
# while 循环
while read -r line; do
echo "行:$line"
done < input.txt
实用脚本:自动备份
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
SOURCE="/home/alice/projects"
mkdir -p $BACKUP_DIR
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" $SOURCE
echo "备份完成:backup_$DATE.tar.gz"
Shell 脚本是自动化的第一步——任何重复做 3 次以上的操作,都值得写成脚本。