插件窝 干货文章 linux shell脚本怎么写

linux shell脚本怎么写

echo 脚本 bash 变量 779    来源:    2025-04-05

Linux Shell脚本编写指南

Shell脚本是Linux系统中强大的自动化工具,下面我将介绍如何编写基本的Shell脚本以及一些实用技巧。

基本结构

一个最简单的Shell脚本如下:

#!/bin/bash
# 这是一个注释
echo "Hello, World!"
  • 第一行 #!/bin/bash 称为shebang,指定解释器
  • # 开头的是注释
  • echo 是输出命令

创建和运行脚本

  1. 创建脚本文件:vim myscript.sh
  2. 添加可执行权限:chmod +x myscript.sh
  3. 运行脚本:
    • ./myscript.sh
    • bash myscript.sh

常用语法元素

变量

name="John"      # 定义变量
echo $name       # 使用变量
echo ${name}     # 推荐使用这种形式
readonly name    # 设为只读
unset name       # 删除变量

输入输出

echo "Text"      # 输出
printf "Name: %s\n" $name  # 格式化输出
read -p "Enter your name: " username  # 读取输入

条件判断

if [ condition ]; then
    commands
elif [ condition ]; then
    commands
else
    commands
fi

循环

# for循环
for i in {1..5}; do
    echo $i
done

# while循环
count=1
while [ $count -le 5 ]; do
    echo $count
    ((count++))
done

# until循环
until [ $count -gt 10 ]; do
    echo $count
    ((count++))
done

函数

function greet() {
    local name=$1  # 局部变量
    echo "Hello, $name"
}

greet "Alice"

实用技巧

参数处理

echo "脚本名: $0"
echo "第一个参数: $1"
echo "参数个数: $#"
echo "所有参数: $@"
echo "退出状态: $?"

数组

fruits=("Apple" "Banana" "Cherry")
echo ${fruits[0]}     # Apple
echo ${fruits[@]}     # 所有元素
echo ${#fruits[@]}    # 数组长度

文件测试

if [ -f "file.txt" ]; then
    echo "文件存在"
fi

if [ -d "dir" ]; then
    echo "目录存在"
fi

示例脚本

备份脚本

#!/bin/bash
# 简单备份脚本

backup_dir="/backup"
source_dir="/home/user/documents"
date=$(date +%Y%m%d)

if [ ! -d "$backup_dir" ]; then
    mkdir -p "$backup_dir"
fi

tar -czf "$backup_dir/backup_$date.tar.gz" "$source_dir"

if [ $? -eq 0 ]; then
    echo "备份成功: $backup_dir/backup_$date.tar.gz"
else
    echo "备份失败!" >&2
    exit 1
fi

系统监控脚本

#!/bin/bash
# 系统监控脚本

echo "===== 系统信息 ====="
echo "主机名: $(hostname)"
echo "当前用户: $(whoami)"
echo "系统运行时间: $(uptime -p)"
echo "当前时间: $(date)"

echo -e "\n===== 磁盘使用 ====="
df -h | grep -v "tmpfs"

echo -e "\n===== 内存使用 ====="
free -h

echo -e "\n===== CPU使用率 ====="
top -bn1 | grep "Cpu(s)"

调试技巧

  1. 显示执行的命令:set -x
  2. 检查语法错误:bash -n script.sh
  3. 跟踪执行:bash -v script.sh

最佳实践

  1. 总是添加shebang
  2. 使用有意义的变量名
  3. 添加注释说明脚本用途
  4. 处理错误情况
  5. 对用户输入进行验证
  6. 使用函数组织代码
  7. 遵循一致的代码风格

希望这个指南能帮助你开始编写Shell脚本!如果需要更具体的脚本示例或有任何问题,请随时提问。