如果你发现自己每天敲同一串命令,就该写成 Shell 脚本了。它能把重复劳动自动化,是提升效率的利器。

一、第一个脚本

#!/bin/bash
# 备份网站目录
tar -czf /backup/site-$(date +%Y%m%d).tar.gz /var/www
echo "备份完成"
chmod +x backup.sh   # 加执行权限
./backup.sh          # 运行

二、变量与参数

NAME="gdcpsoft"          # 变量
DIR=$1                    # 接收第一个参数
echo "备份 $NAME 到 $DIR"

三、条件判断

if [ -d "/var/www" ]; then
  echo "目录存在"
else
  echo "目录不存在"
fi

四、循环

# 遍历处理多个文件
for f in /var/www/*.html; do
  echo "处理 $f"
done

五、实战:批量重命名

for f in *.txt; do
  mv "$f" "${f%.txt}.md"
done
${f%.txt} 是参数扩展,表示去掉变量末尾的 .txt。Shell 的字符串处理能力很强大。

六、小结

Shell 脚本的学习曲线不陡,但能极大提升运维效率。从把日常命令固化成脚本开始,逐步掌握变量、判断、循环,你会越来越离不开它。