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.shShell脚本的基本结构#
一个完整的Shell脚本通常包含以下部分:
- shebang行:指定脚本的解释器
- 注释:说明脚本的功能
- 命令:要执行的命令
- 变量:存储数据
- 控制结构:条件判断、循环等
- 函数:封装可重用的代码
注释#
注释以#开头,用于说明脚本的功能,不会被执行。
#!/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脚本了。在接下来的教程中,我们将学习更多高级功能,如变量、控制结构、函数等。