Shell脚本基础语法#

Shell脚本是Linux系统中非常强大的工具,它可以帮助我们自动化各种任务。本教程将从最基础的语法开始,逐步介绍Shell脚本的使用方法。

什么是Shell脚本#

Shell脚本是一个包含一系列命令的文本文件,这些命令可以被Shell解释器执行。在Linux系统中,最常用的Shell是Bash(Bourne Again Shell)。

第一个Shell脚本#

创建脚本文件#

# 创建一个名为hello.sh的脚本文件
touch hello.sh

编写脚本内容#

#!/bin/bash
# 这是一个注释

echo "Hello, World!"

使脚本可执行#

chmod +x hello.sh

执行脚本#

# 方法1:直接执行
./hello.sh

# 方法2:使用bash命令执行
bash hello.sh

Shell脚本的基本结构#

一个完整的Shell脚本通常包含以下部分:

  1. shebang行:指定脚本的解释器
  2. 注释:说明脚本的功能
  3. 命令:要执行的命令
  4. 变量:存储数据
  5. 控制结构:条件判断、循环等
  6. 函数:封装可重用的代码

注释#

注释以#开头,用于说明脚本的功能,不会被执行。

#!/bin/bash
# 这是一个单行注释

# 这是一个
# 多行注释

echo "Hello, World!"  # 行尾注释

命令执行#

在Shell脚本中,你可以执行任何在终端中可以执行的命令。

#!/bin/bash

# 执行ls命令
ls -la

# 执行pwd命令
pwd

# 执行date命令
date

输出#

使用echo命令输出文本。

#!/bin/bash

# 输出简单文本
echo "Hello, World!"

# 输出变量
greeting="Hello"
echo $greeting

# 输出带引号的文本
echo "The value is: $greeting"

# 禁用变量展开
echo 'The value is: $greeting'

# 输出多行文本
echo "Line 1
Line 2
Line 3"

输入#

使用read命令读取用户输入。

#!/bin/bash

echo "What is your name?"
read name
echo "Hello, $name!"

# 带提示的输入
read -p "What is your age? " age
echo "You are $age years old."

# 静默输入(用于密码)
read -s -p "Enter password: " password
echo "\nPassword entered."

执行方式#

交互式执行#

直接在终端中执行脚本,脚本会等待用户输入。

非交互式执行#

脚本不需要用户输入,直接执行完成。

#!/bin/bash

# 非交互式脚本
echo "Starting script..."
ls -la
echo "Script completed."

脚本调试#

使用-x选项调试#

# 调试执行脚本
bash -x hello.sh

使用-n选项检查语法#

# 检查脚本语法
bash -n hello.sh

示例脚本#

系统信息脚本#

#!/bin/bash

# 显示系统信息
echo "System Information"
echo "=================="
echo "Hostname: $(hostname)"
echo "Date: $(date)"
echo "Uptime: $(uptime)"
echo "Kernel: $(uname -r)"
echo "CPU: $(lscpu | grep 'Model name' | cut -d: -f2)"
echo "Memory: $(free -h | grep 'Mem:' | awk '{print $2}')"
echo "Disk: $(df -h | grep '/$' | awk '{print $2}')"

文件备份脚本#

#!/bin/bash

# 备份指定文件
if [ $# -ne 1 ]; then
    echo "Usage: $0 <file>"
    exit 1
fi

file=$1
backup_file="$file.bak.$(date +%Y%m%d)"

cp $file $backup_file
echo "Backup created: $backup_file"

总结#

本教程介绍了Shell脚本的基本概念和语法,包括:

  • 创建和执行Shell脚本
  • 脚本的基本结构
  • 注释的使用
  • 命令执行
  • 输出和输入
  • 脚本调试

通过这些基础知识,你已经可以开始编写简单的Shell脚本了。在接下来的教程中,我们将学习更多高级功能,如变量、控制结构、函数等。