Linux Shell脚本基础语法

news/2025/11/14 16:30:41/文章来源:https://www.cnblogs.com/sunnyeveryday/p/19222552

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不懂 Attention 不算懂 AI?十大奠基论文(一):一文读懂《Attention Is All You Need》

摘要 《Attention Is All You Need》论文开创性地提出Transformer架构,彻底改变了自然语言处理领域的技术路径。该论文解决了传统RNN/CNN模型的三大痛点:通过自注意力机制实现全局语义捕捉,摆脱了序列处理的低效性;…

2025年直埋保温管供货厂家权威推荐榜单:热力管道/夹克保温管/预制直埋保温管源头厂家精选

在城镇集中供热管网与工业热能输送系统持续建设的推动下,直埋保温管作为保障热能高效、安全传输的核心部件,其市场需求稳步增长。据行业报告预测,未来几年中国预制直埋保温管市场将保持稳定发展态势。 直埋保温管凭…

2025上海专业防水补漏推荐!Top5口碑公司实测,先检测后施工有保障

随着建筑防水需求的不断升级,市场对专业防水补漏服务的要求日益严苛。本榜单基于技术实力、服务范围、施工质量和客户口碑四大维度,结合行业数据与用户反馈,对上海地区主流防水补漏企业进行综合评测,为消费者和企业…

PCBA方案设计——充气泵的工作原理是什么?

充气泵的核心工作原理是通过动力源驱动气体压缩机构,将低压气体压缩为高压气体,再通过管路输送至目标对象,实现充气;部分机型可反向工作完成抽气,本质是“气体的压力/容积转换”过程。一、核心工作流程(充气模式…

Linux内核xarray数据结构采用

Linux内核xarray数据结构采用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

2025年通风气楼厂家权威推荐榜单:钢结构厂房气楼/顺坡气楼/排烟通风气楼源头厂家精选

在工业建筑绿色转型与安全生产要求不断提升的背景下,通风气楼作为工业厂房的“呼吸系统”,其技术含量与产品质量直接关系到生产环境的安全和能源消耗效率。 据QYResearch最新研究报告显示,2031年全球通风装置市场销…

楼宇间网络拓扑测绘 从原理到精准部署

楼宇间拓扑测绘的核心,是将网络连接关系精确定位到建筑物级别,为校园、园区等单位的网络规划与运维提供“高清地图”。 通过精准的楼宇级拓扑测绘,网络管理员能快速定位故障点、优化数据流路径,并为网络扩容提供决…

IP种子技术:构建全球P2P网络实时监测方案

BT下载作为一种点对点文件共享技术,因其高效分发大体积文件的能力而广受欢迎。在该技术体系中,BT种子文件作为关键索引,不仅记录了目标文件的存储位置、大小等元数据,更包含了下载服务器与种子发布者的IP地址等关键…

IP应用场景全图谱:你的IP属于哪一类?

IP地理位置定位技术是当今互联网领域的关键技术之一,它通过分析IP地址的网络特征来确定设备的地理位置。本文介绍的超高精度IP实时定位系统实现了街道级别的定位精度,该系统采用网络测量与大数据挖掘相结合的技术路线…

windows下配置cmake+opencv报错

windows下配置cmake+opencv报错: find_package(OpenCV 4.3.0 REQUIRED)报错: CMake Error at CMakeLists.txt:8 (find_package): By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this projec…

编译lazarus时,可能出现Makefile:3520: recipe for target fcllaz.ppu failed的处理方法

编译lazarus时,可能出现Makefile:3520: recipe for target fcllaz.ppu failed的处理方法如果编译lazarus出现以下错误信息:[2025-11-13 23:37:45.224 Info] (10028) Recompiling DB, checksum changed for /home/lbz…

破局代码思维:软件开发公司的体验式竞争力进化

破局代码思维:软件开发公司的体验式竞争力进化软件开发行业的现状剖析 数字化浪潮下,全球软件开发市场规模预计2025年将达1.6万亿美元,竞争日趋白热化。当前多数软件公司仍聚焦"代码交付"传统模式,将功能…

IP定位面积揭秘:为什么你的IP归属地会不准确?

你是否曾注意到,当你在社交媒体发布内容时,显示的IP属地有时与你实际所在地不符?或者在使用某些网络服务时,系统识别的位置与你真实位置相差甚远?这背后涉及的是IP地址定位技术中的一个关键概念—IP定位面积。 一…

无需人工奖励!Meta FAIR华人团队提出「早期经验学习范式」,AI智能体像人类一样“从错误中成长”

01 论文概述 论文标题: Agent Learning via Early Experience: Bridging Imitation and Reinforcement Learning Without Explicit Rewards 作者团队: 由Meta AI FAIR实验室(Facebook人工智能研究院)主导,华人研究…

嵌入式PWRKEY多功能使用攻略与设计要点探讨!

PWRKEY在嵌入式设备中承担着核心的电源管理功能,而多功能PWRKEY的引入则进一步提升了系统灵活性。本文将探讨其多功能使用攻略和设计环节中的要点。 在嵌入式项目开发中,无论是简单的用户按键,还是复杂的MCU联动,又…

2025年广东儿子不学习沉迷网络公司权威推荐榜单:青少年戒掉网瘾/初中生沉迷网络游戏/孩子沉迷网络游戏源头公司精选

随着数字化时代的深入发展,青少年网络沉迷问题日益凸显。据相关研究数据显示,部分城市中学生网络游戏过度使用筛查出率呈现波动变化,这一问题已成为众多家庭面临的严峻挑战。 网络沉迷不仅影响青少年的学业成绩,更…

打造景区“视觉中枢”:视频融合平台EasyCVR助力智慧景区安防智能化升级

随着旅游业的复苏,景区面临着客流管理、安全防控、服务质量提升等多重挑战。传统烟囱式、异构化的视频监控系统已难以满足现代化智慧景区的管理需求。本文将深入探讨基于视频融合技术的EasyCVR平台,如何作为景区的“…

[books]Love, Money, and Parenting: How Economics Explains the Way We Raise Our Kids 5 Febrero 2019

Love, Money, and Parenting: How Economics Explains the Way We Raise Our Kids Tapa dura – 5 Febrero 2019 Love, Money, and Parenting: How Economics Explains the Way We Raise Our KidsMatthias Doepke and …

一个小白的YOLOv10(MindYOLO)推理初尝试

前情提要 环境:笔记本、MindSpore、mindyolo、Jupyter Notebook 资源:mindyolo github、智能厨房 gitcode 小白工程师学习到了较繁琐的YOLOv10的新检测目标训练(非COCO数据集中已有目标),从github将mindyolo项目下…

Proxmox VE创建Linux虚拟机、相关设置分析

本文介绍了Proxmox VE创建Linux虚拟机、相关设置详细分析,以及相关机制分析参考:PVE 9.0 快速上手:一台物理机搞定虚拟化系统! [[20251028-安装Ubuntu Server]] 下载镜像 官网下载| Ubuntu 上传镜像 上传安装镜像,…