Shell 脚本入门教程

📌 温馨提示:
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。

🐚 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
喜欢就支持一下吧
点赞7
评论 抢沙发

请登录后发表评论

    暂无评论内容