把下面 4 行粘进终端,立刻体会脚本的魅力:
#!/bin/bash
# hello.sh
echo "今天是 $(date +%F)"
给脚本权限
chmod +x hello.sh && ./hello.sh
跑通即掌握三大件:Shebang
→ 变量
→ 执行权限
。
变量 name="tom"
eC++ho $name
数组 arr=(a b c)
echo ${arr[0]}
@
字符串 ${#str}
${str:0:3}
截取if if [ "$a" -gt 10 ]; then … fi
for for f in *.log; do echo $f; done
while while read line; do … done < file
函数 deploy(){ Git pull && npm run build; }
deploy
测试文件 [ -f /etc/passwd ]
-d
目录 / -x
可执行
每个脚本都可直接落地,保存为
xxx.sh
,chmod +x
即可运行。
#!/bin/bash
# backup.sh
SRC=/data
DST=/backup/$(date +%F).tar.gz
tar -czf "$DST" "$SRC" --exclude='*.tmp'
echo "✅ 备份完成:$DST"
#!/bin/bash
# log_cleanup.sh
LOGDIR=/var/log/app
find "$LOGDIR" -name "*.log" -mtime +7 -exec gzip {} \;
find "$LOGDIR" -name "*.gz" -mtime +30 -delete
#!/bin/bash
# alert.sh
CPU=$(top -bn1 | awk '/Cpu/ {printf "%.0f", 100-$8}')
MEM=$(free | awk '/Mem/ {printf "%.0f", $3/$2*100}')
# 报警阈值
CPU_THRESHOLD=80
MEM_THRESHOLD=85
WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
msg="CPU ${CPU}% MEM ${MEM}%"
if (( CPU > CPU_THRESHOLD )) || (( MEM > MEM_THRESHOLD )); then
curl -sS -X POST "$WEBHOOK" \
-H 'Content-Type: application/json' \
-d "{\"msgtype\":\"text\",\"text\":{\"content\":\"⚠️ 资源告警:$msg\"}}"
fi