Linux Shell 编程
·
Linux Shell 编程基础
Shell 是 Linux 系统的命令行解释器,用于执行用户输入的命令或脚本。Shell 编程是通过编写脚本文件(通常以 .sh 结尾)来自动化任务。
常见 Shell 类型
bash(Bourne Again Shell):Linux 默认 Shell,功能丰富。sh(Bourne Shell):早期标准 Shell。zsh、ksh等:扩展功能更强的 Shell。
脚本编写与执行
脚本文件结构
脚本通常以 #!/bin/bash(Shebang)开头,指定解释器路径。例如:
#!/bin/bash
echo "Hello, World!"
执行脚本的权限
需为脚本添加可执行权限:
chmod +x script.sh
运行脚本
- 直接执行(需可执行权限):
./script.sh - 通过解释器运行(无需权限):
bash script.sh
变量与数据类型
变量定义与使用
变量名区分大小写,无需声明类型:
name="Alice"
age=30
echo "Name: $name, Age: $age"
环境变量
系统预定义的变量(如 $PATH),可通过 export 导出为环境变量:
export MY_VAR="value"
特殊变量
$0:脚本名称。$1,$2...:脚本参数。$#:参数个数。$?:上一条命令的退出状态。
控制结构
条件判断
使用 if、case 语句:
if [ "$age" -ge 18 ]; then
echo "Adult"
else
echo "Child"
fi
循环结构
for循环:for i in {1..5}; do echo "Number: $i" donewhile循环:count=0 while [ $count -lt 3 ]; do echo "Count: $count" ((count++)) done
函数与模块化
定义函数
greet() {
echo "Hello, $1!"
}
greet "Bob"
返回值
函数通过 return 返回状态码(0 表示成功),或通过 echo 输出结果:
add() {
echo $(($1 + $2))
}
result=$(add 3 5)
文件与输入输出
文件操作
- 读取文件:
while read line; do echo "Line: $line" done < file.txt - 写入文件:
echo "Content" > output.txt # 覆盖 echo "More" >> output.txt # 追加
重定向
>:覆盖输出。>>:追加输出。2>:重定向错误输出。
调试与错误处理
调试脚本
使用 -x 选项打印执行过程:
bash -x script.sh
错误处理
set -e:脚本遇到错误立即退出。trap捕获信号:trap "echo 'Error occurred'; exit 1" ERR
常用工具与命令
文本处理
grep:搜索文本。sed:流编辑器。awk:文本分析工具。
算术运算
expr:整数运算。bc:浮点运算:echo "scale=2; 5/3" | bc
实际应用示例
备份脚本
#!/bin/bash
backup_dir="/backup"
tar -czf "$backup_dir/backup_$(date +%Y%m%d).tar.gz" /path/to/data
定时任务
通过 crontab 定期执行脚本:
0 2 * * * /path/to/backup.sh
通过掌握以上内容,可以高效编写 Shell 脚本实现自动化任务。
更多推荐




所有评论(0)