尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Linux Shell脚本基础语法

Linux Shell脚本基础语法
📅 发布时间:2026/6/20 10:08:58
Linux Shell脚本基础语法

Shell 是指一种应用程序,用户通过这个程序访问操作系统内核的服务。

  • Windows Explorer,图形界面shell
  • Ken Thompson 的 sh,第一种Unix Shell
  • Bourne Again Shell(/bin/bash)
    Shell 脚本一般指能在sh或bash等Unix命令行shell下运行的脚本,以“.sh”为后缀。

语法

约定

#! 告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

#! /bin/bash
echo "hello world"
  • 单行注释: # 后面跟空格,可以注释一整行
  • 多行注释: 冒号“:”后跟单引号将多行括起来
# 这是单行注释:'
注释部分
注释部分
'

变量

  1. 定义变量
    变量的声明方式是var_name=var_value。

    • 变量名只包含字母(大小写敏感)、数字和下划线 _,数字不能在开头
    • 等号前后不能有空格
  2. 只读变量
    使用"readonly"修饰,则变量值不会被改变。readonly var_name

  3. 删除变量
    使用"unset"可以删除变量,删除后变量不能再被使用

  4. 变量类型:

    • 字符串: 单引号或者双引号括起来。str1='abc' str2="def"
    • 整数类型: file_count=5
    • 索引数组: 用小括号括起来,以空格分隔。my_arr=('aa' "bb" 123)
    • 关联数组(字典): 需要先声明,declare -A 数组名。

    shell 脚本只支持一维数组

  5. 环境变量
    由操作系统或用户设置的特殊变量,用于配置 Shell 的行为和影响其执行环境

    • PATH:包含了操作系统搜索可执行文件的路径
  6. 特殊变量

    • $0 表示脚本的名称
    • $1, $2,...,$n 等表示脚本的参数
    • $# 表示传递给脚本的参数数量
    • $? 表示上一个命令的退出状态

运算符

假设a=10, b=20

  • 算术运算需要expr命令,且只支持整数。
运算符 说明 举例
+ 加法 `expr $a + $b` 结果为 30。
- 减法 `expr $a - $b` 结果为 -10。
* 乘法 `expr $a * $b` 结果为  200。
/ 除法 `expr $b / $a` 结果为 2。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 把变量 b 的值赋给 a。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
  • 关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
运算符 说明 举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。
  • 布尔运算符
运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或 || 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 或 && 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

相关新闻

  • 不懂 Attention 不算懂 AI?十大奠基论文(一):一文读懂《Attention Is All You Need》
  • PCBA方案设计——充气泵的工作原理是什么?
  • 楼宇间网络拓扑测绘 从原理到精准部署

最新新闻

  • 攀枝花市奢侈品手表包包回收回收门店权威测评:综合实力最强的五家店铺推荐 - 谊识预商务
  • 深入解析NXP ColdFire EMAC单元:DSP性能优化的架构奥秘
  • 安顺市2026奢侈品手表包包回收防骗指南:跑了5家店总结出的真实报价经验 - 谊识预商务
  • FlowComposer框架:零样本学习中的显式组合与流匹配技术
  • ARM9微控制器LPC32x0系列:低功耗、高集成度与VFP协处理器的嵌入式设计实践
  • 洛阳市奢侈品手表包包回收价格差距高达15%:实测对比告诉你哪家店报价最实在 - 谊识预商务

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号