Linux运维(七)Linux Shell脚本编程:从“Hello World”到“万能脚本大师”

Linux Shell脚本编程:从“Hello World”到“万能脚本大师”


引言

如果你还在用鼠标点来点去,那你可能还没体会到Shell脚本的魅力。Shell脚本就像是Linux世界的“魔法咒语”,只需几行代码,就能让系统乖乖听你的话。今天,我们从“Hello World”开始,一步步升级到“万能脚本大师”,让你在Linux的世界里呼风唤雨!


第一章:Hello World!——脚本的起点

1. 第一个脚本

创建一个文件hello.sh,输入以下内容:

#!/bin/bash
echo "Hello, World!"

说明

  • #!/bin/bash:指定脚本解释器为Bash。
  • echo:打印内容到终端。
2. 运行脚本
chmod +x hello.sh  # 添加执行权限
./hello.sh         # 运行脚本

输出

Hello, World!

吐槽:别看这只是一个简单的Hello World,但在脚本的世界里,它就是你的“第一次施法成功”!


第二章:变量与输入——让脚本“活”起来

1. 定义变量
name="Linux Wizard"
echo "Hello, $name!"
2. 用户输入
#!/bin/bash
echo "What's your name?"
read name
echo "Welcome, $name!"

说明

  • read:读取用户输入并保存到变量中。

案例:我的脚本第一次学会“说话”时,差点把自己感动哭了!(好吧,其实是我自己哭的。)


第三章:条件判断——脚本的“大脑”

1. 基本语法
if [ "$name" == "Linux Wizard" ]; then
    echo "You are the master!"
else
    echo "Nice to meet you, $name!"
fi
2. 文件检查
if [ -f "/etc/passwd" ]; then
    echo "File exists!"
else
    echo "File does not exist!"
fi

说明

  • -f:检查文件是否存在。
  • 其他常用选项:-d(目录)、-r(可读)、-w(可写)。

吐槽:条件判断就像是脚本的“大脑”,没有它,你的脚本只能是一条直线,毫无灵魂!


第四章:循环——脚本的“永动机”

1. for循环
for i in {1..5}; do
    echo "Iteration $i"
done
2. while循环
count=0
while [ $count -lt 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

说明

  • $((...)):执行算术运算。

案例:我写了一个while循环来监控服务器状态,结果忘了写终止条件,差点把自己电脑搞崩溃了!(教训:写循环一定要小心!)


第五章:函数——脚本的“模块化”

1. 定义函数
greet() {
    echo "Hello, $1!"
}

greet "Linux Wizard"

说明

  • $1:函数的第一个参数。
2. 返回值
add() {
    return $(($1 + $2))
}

add 3 5
echo "Result: $?"

说明

  • $?:获取上一条命令的返回值。

吐槽:函数就像是脚本的“积木”,有了它,你才能搭建出更复杂的“建筑”!


第六章:高级技巧——让脚本“飞”起来

1. 管道与重定向
cat /etc/passwd | grep "root" > result.txt

说明

  • |:将前一个命令的输出作为后一个命令的输入。
  • >:将输出重定向到文件。
2. 正则表达式
if [[ "$email" =~ ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]]; then
    echo "Valid email!"
else
    echo "Invalid email!"
fi

说明

  • =~:匹配正则表达式。

案例:我曾经用正则表达式写了一个邮箱验证脚本,结果发现自己的邮箱格式都不对!(尴尬到原地爆炸!)

3. 调试脚本

使用-x参数调试脚本:

bash -x script.sh

第七章:实战演练——万能脚本大师

1. 自动备份脚本
#!/bin/bash
backup_dir="/backup"
source_dir="/home/user"
timestamp=$(date +"%Y%m%d_%H%M%S")

mkdir -p $backup_dir
tar -czf "$backup_dir/backup_$timestamp.tar.gz" $source_dir
echo "Backup completed!"

说明

  • tar:压缩文件和目录。
  • date:获取当前时间。
2. 监控服务器状态
#!/bin/bash
while true; do
    cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')
    echo "CPU Usage: $cpu_usage%"
    sleep 5
done

说明

  • top:查看系统资源使用情况。
  • sleep:暂停脚本执行。

吐槽:有了这些脚本,你不仅能当“万能脚本大师”,还能当“懒人福音”!


结语

Shell脚本编程就像是Linux世界的“魔法”,掌握它,你就能让系统听从你的指挥。无论你是菜鸟还是高手,只要有耐心和热情,你一定能成为“万能脚本大师”!

互动环节

  • 你写过最有趣的Shell脚本是什么?
  • 在脚本编程中踩过哪些坑?

快来评论区分享你的故事吧!


P.S. 如果觉得这篇博客对你有帮助,别忘了点赞、分享,并关注我的专栏,更多精彩内容等你来发现!

你可能感兴趣的:(运维,linux)