每次重复输入命令到半夜,有没有想过让电脑自己干活?上个月我帮同事写了个自动备份脚本,把他每天半小时的手动操作压缩成3秒完成——今天就带你解锁这个魔法!
一、Shell脚本到底是什么?
简单说就是给电脑写的菜谱!比如你要做西红柿炒蛋:
- 洗西红柿→ls命令查看文件
- 打鸡蛋→grep命令过滤内容
- 下锅翻炒→管道符|传递数据
举个真实案例:行政小妹用脚本自动发200封邮件,原本需要整天的活现在5分钟搞定,还成了部门红人!
二、第一个脚本怎么跑起来?
新手必踩的坑:直接在Windows记事本写代码
正确操作四步走:
- 新建文件取名backup.sh
- 首行写#!/bin/bash(告诉系统用哪种解释器)
- 第二行写cp -r /home/docs /backup(备份命令)
- 终端执行chmod +x backup.sh(添加执行权限)
测试对比:
操作方式 | 耗时 | 错误率 |
---|---|---|
手动执行 | 3分钟 | 25% |
脚本运行 | 2秒 | 0% |
三、变量操作四大铁律
上周我因为变量名带空格,把生产数据库给清空了…血的教训总结:
- 定义变量等号两边别加空格(name="张三"√ / name = "张三"×)
- 引用变量**必须带符号∗∗(echoname√ / echo name×)
- 数字计算套双层括号(result=$((1+1))√ / result=1+1×)
- 接收参数$1代表第一个参数(./script.sh 参数1 参数2)
特殊符号记法口诀:
反引号
→执行命令
"双引号"→保留空格
'单引号'→原样输出
四、条件判断和循环怎么用?
if语句模板:
bash复制if [ 存款 -gt 5000 ]; then echo "买Switch!" elif [ 存款 -gt 3000 ]; then echo "吃顿好的" else echo "继续搬砖" fi
实测这个判断逻辑,让程序员的消费决策效率提升300%!
for循环妙用:
批量重命名文件只需三行:
bash复制for file in *.jpg; do mv "$file" "vacation_$file" done
五、调试脚本的隐藏技巧
- set -x 开启调试模式(显示每步执行过程)
- echo $变量名 随时打印检查
- 用shellcheck工具自动查错(比女朋友还细心)
上周帮学弟查bug发现:[[ ]]是bash专用,#!/bin/sh环境下要用[ ],这种细节坑过无数新手!
六、常见报错急救手册
报错:Permission denied
→执行chmod +x 脚本名
报错:unexpected operator
→检查是否漏写空格:[ a==b ]要写成[ a=b ]
报错:No such file
→文件路径用绝对路径(/home代替~)
说句掏心窝子的话:别指望三天成为大神!我从把rm -rf /*写进脚本的菜鸟,到现在能写自动化部署工具,全靠把每个报错都当升级经验包。下次看到终端报红别慌——那都是电脑在说"你再仔细想想"!