📌 温馨提示:
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
🐚 Shell 脚本入门教程
Shell 是 Linux/Unix 系统的命令解释器,可以让用户与操作系统进行交互。通过编写 Shell 脚本,可以实现自动化任务、批量操作、系统运维等功能。
例如 启动工具箱便是一个shell脚本 wd 位于/usr/bin/下
📖 一、什么是 Shell?
- Shell 是命令行界面(CLI)的一种程序,Bash 是最常用的 Shell 类型。
- Shell 脚本是一系列命令的集合,保存在一个文本文件中,后缀通常为
.sh
。
🛠 二、脚本基础
2.1 创建脚本文件
touch hello.sh
chmod +x hello.sh # 添加执行权限
2.2 基本结构
#!/bin/bash
# 这是一个注释
echo "Hello, world!"
#!/bin/bash
:指定解释器(推荐写)echo
:输出命令#
:注释行
执行脚本:
./hello.sh
🔤 三、变量与基本运算
3.1 定义变量
name="Alice"
age=25
3.2 使用变量
echo "My name is $name, age is $age"
3.3 读取用户输入
read -p "Enter your name: " username
echo "Welcome, $username"
3.4 算术运算
a=10
b=3
sum=$((a + b))
echo "Sum: $sum"
🔁 四、控制语句
4.1 条件判断
if [ $age -ge 18 ]; then
echo "Adult"
else
echo "Minor"
fi
常用比较符:
比较内容 | 操作符 |
---|---|
数值 | -eq -ne -lt -le -gt -ge |
字符串 | = != -z -n |
文件 | -f -d -e -s -r -w -x |
4.2 多分支判断
case "$var" in
start) echo "Starting..." ;;
stop) echo "Stopping..." ;;
*) echo "Unknown option" ;;
esac
4.3 循环
for 循环
for i in 1 2 3 4 5; do
echo "Number $i"
done
while 循环
count=1
while [ $count -le 5 ]; do
echo "Count $count"
((count++))
done
🧱 五、函数
greet() {
echo "Hello $1"
}
greet "Tom"
$1
是第一个参数,$2
是第二个,依此类推
📂 六、文件与目录操作
创建和删除目录
mkdir mydir
rmdir mydir
文件判断示例
if [ -f "file.txt" ]; then
echo "file.txt 存在"
fi
📝 七、实践示例:备份目录脚本
#!/bin/bash
backup_dir="/backup"
source_dir="/home/user/data"
date=$(date +%Y%m%d)
mkdir -p $backup_dir
tar -czf $backup_dir/data_$date.tar.gz $source_dir
echo "Backup completed: $backup_dir/data_$date.tar.gz"
🧪 八、调试技巧
- 加
-x
运行脚本可查看执行过程:
bash -x script.sh
- 使用
set -e
脚本遇错即停止:
set -e
📚 九、推荐学习资源
名称 | 链接 |
---|---|
Shell 教程(廖雪峰) | https://www.liaoxuefeng.com/wiki/1016959663602400 |
Shell 菜鸟教程 | https://www.runoob.com/linux/linux-shell.html |
Shell 变量参考 | man bash 或 help declare |
THE END
暂无评论内容