Linux脚本基础
Linux脚本(Shell脚本)是Linux系统中自动化任务的重要工具,通过将一系列命令组合成一个可执行的文件,简化重复性操作,提高工作效率,本文将介绍Linux脚本的基础知识,包括脚本创建、执行、变量、控制结构、函数及常见应用场景。

脚本创建与执行
Linux脚本通常以.sh为扩展名,第一行必须指定解释器,如#!/bin/bash(使用Bash解释器),创建脚本时,可通过文本编辑器(如vi、nano)编写命令,
#!/bin/bash echo "Hello, Linux Script!"
保存后(如hello.sh),需赋予执行权限:
chmod +x hello.sh
执行脚本的方式有两种:
- 直接运行:
./hello.sh(需当前目录有执行权限) - 通过解释器:
bash hello.sh(无需执行权限)
变量与数据类型
脚本中的变量无需声明类型,直接赋值即可,
name="Alice" age=25 echo "Name: $name, Age: $age"
变量命名规则:
- 以字母或下划线开头,不能包含空格或特殊字符
- 区分大小写(如
Name和name是不同变量) - 引用变量时需加符号,如
$name
特殊变量:
$0:脚本名称$1、$2…:位置参数(脚本执行时的参数)- 上一条命令的退出状态(0表示成功,非0表示失败)
- 当前进程ID
输入输出与重定向
脚本可通过read命令接收用户输入:
read -p "Enter your name: " username echo "Hello, $username!"
输出重定向:

>:覆盖输出到文件>>:追加输出到文件2>:错误输出重定向&>:标准输出和错误输出合并重定向
ls > file_list.txt # 将目录列表保存到file_list.txt ls non_existent_file 2> error.log # 错误信息保存到error.log
条件判断
脚本通过if、case等语句实现逻辑控制。if语句的基本结构:
if [ condition ]; then
# 条件成立时执行
elif [ condition ]; then
# 其他条件成立时执行
else
# 条件不成立时执行
fi
常见条件判断:
- 数值比较:
-eq(等于)、-ne(不等于)、-gt(大于) - 字符串比较:(等于)、(不等于)、
-z(字符串为空) - 文件测试:
-f(是否存在且为普通文件)、-d(是否存在且为目录)
示例:
if [ $age -ge 18 ]; then
echo "Adult"
else
echo "Minor"
fi
循环结构
循环用于重复执行命令,常见类型包括for、while和until。
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
until循环:条件为假时循环
count=5
until [ $count -eq 0 ]; do
echo "Countdown: $count"
((count--))
done
函数定义
函数可封装代码块,提高脚本复用性:

function greet() {
echo "Hello, $1!" # $1是函数的第一个参数
}
greet "Bob" # 调用函数并传递参数
函数返回值通过return设置,但更推荐通过echo输出结果:
function add() {
echo $(($1 + $2))
}
result=$(add 10 20)
echo "Result: $result"
数组与字符串操作
数组:支持索引数组和关联数组
# 索引数组
fruits=("apple" "banana" "cherry")
echo ${fruits[0]} # 输出第一个元素
echo ${fruits[@]} # 输出所有元素
# 关联数组
declare -A colors
colors["red"]="#FF0000"
echo ${colors["red"]}
字符串操作:
- 拼接:
greeting="Hello, "$name"!" - 长度:
${#string} - 截取:
${string:2:4}(从第2个字符开始截取4个字符)
脚本调试与优化
调试脚本时,可通过以下方式排查问题:
- 使用
-x选项:bash -x script.sh(显示执行的每条命令) - 使用
set -e:脚本出错时立即退出 - 使用
set -u:引用未定义变量时报错
优化建议:
- 添加注释,提高可读性
- 避免硬编码路径或值,改用变量
- 使用函数拆分复杂逻辑
实际应用场景
- 文件备份:自动压缩并备份指定目录
- 日志监控:实时监控日志文件并提取关键信息
- 系统维护:定期清理临时文件或更新软件包
- 批量操作:通过循环对多个文件执行相同命令
Linux脚本是提升工作效率的利器,掌握基础语法和逻辑结构后,可灵活应用于自动化任务,从简单的命令组合到复杂的逻辑处理,脚本能力随实践逐步提升,建议多动手编写脚本,结合实际需求优化功能,最终实现高效、可靠的Linux系统管理。




















