author
type
Post
status
Published
date
slug
summary
tags
Linux
category
运维
icon
password
概述:什么是 Shell?Bash 又是什么?
- Shell 是用户与操作系统内核之间的命令解释器。
- 常见 shell:
sh(Bourne Shell,最原始)bash(Bourne-Again Shell,Linux 默认)zsh(功能更强,macOS 新版本默认)dash(轻量级,Debian 启动用)
本文以 Bash 为主,语法兼容sh的大部分内容。
脚本基本结构
✅ 标准格式
💡 小贴士:
- 文件扩展名可为
.sh(推荐但不是必须)
- 赋予执行权限:
chmod +x hello.sh
- 运行脚本:
./hello.sh
执行 Shell 脚本的 3 种方式
方式 | 命令 | 特点 |
直接执行 | ./script.sh | 需要 +x 权限,启动子 shell |
使用 bash 命令 | bash script.sh | 不需要权限,总是新建进程 |
源码加载(source) | source script.sh 或 . script.sh | 在当前 shell 中执行,变量保留 |
推荐使用bash script.sh进行开发测试。
变量与参数
定义变量
📌 规则:
- 无空格在
=两边
- 变量名只能包含字母、数字、下划线
_,不能以数字开头
- 默认所有变量是字符串类型
引用变量
只读变量
删除变量
输入输出处理(read / echo / printf)
echo —— 输出文本
printf —— 格式化输出(更强大)
read —— 从键盘读取输入
read 高级用法
条件判断(if、test、[ ]、[[ ]])
基本 if 结构
注意:中括号[ ]是一个命令(即test命令),左右必须有空格!
示例:比较数值
操作符(整数) | 含义 |
-eq | 等于 |
-ne | 不等于 |
-lt | 小于 |
-le | 小于等于 |
-gt | 大于 |
-ge | 大于等于 |
字符串比较
操作符(字符串) | 含义 |
= 或 == | 是否相等 |
!= | 是否不等 |
-z str | 字符串为空? |
-n str | 字符串非空? |
💡 推荐使用双引号包裹变量防止出错:[ "$var" = "value" ]
使用 [[ ]](Bash 扩展,功能更强)
支持通配符匹配
*, <, > 比较字符串大小写等。字符串操作
获取长度
截取子串
替换字符串
提取路径部分(常用于脚本)
数学运算
方法一:$(( )) 整数运算
方法二:expr 命令(旧方式,少用)
⚠️ 注意:
* 必须转义:\\*浮点数计算?用 bc
安装:sudo apt install bc或yum install bc
循环结构(for / while / until)
for 循环
标准 for
类 C 风格(需双括号)
遍历数组
while 循环
读取文件每行
until 循环(当条件为假时继续)
函数定义与使用
定义函数
提示:
调用函数
返回值说明
return N:返回状态码(0~255),用于判断成功失败
- 若需返回数据,应使用
echo输出并捕获:
- 作者:NotionNext
- 链接:https://tangly1024.com/article/310db897-8f81-8011-a469-ef815944fe05
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。











