Shell脚本基础知识

打造你自己的小程序容器 —— 一套能装得下整个未来的跨端技术! 摘要: 本文介绍了一种基于Capacitor框架开发的轻量级“小程序容器”解决方案——LapDrop。通过模拟微信小程序的运行逻辑(动态加载、原生能力调用、沙盒环境),LapDrop允许开发者自主构建跨平台(iOS/Android/Web)的小程序生态。其核心利用Capacitor的插件桥接机制,实现JS与原生功能的无缝调用,并支持浏览器调试与原生环境一致化。优势包括插件化架构、状态隔离、热更新及开放权限控制,适用于企业级模块化应用或开发者工具。未来计划扩展生命周期管理、远程加载等功能,目标成为开源的小程序 阅读详情

什么是Shell

Shell是用户与linux内核之间的解释器,解释器负责将用户的指令翻译为内核可以识别的指令。
在这里插入图片描述
常用的Shell解释器有(查看本机有哪些解释器:cat /etc/shells):

  • /bin/bash
  • /bin/sh
  • /bin/csh
  • /bin/tcsh
    通过usermod、chsh可以更改登录Shell。可以在cat /etc/passwd中查看

Bash基本特性

快捷键、Tab键补全
命令历史(history)
命令别名 (alias)
标准输入和输出重定向(>、>>、2>、2>>、&>)
管道(|)

Shell脚本的设计与运行

什么是Shell脚本

Shell脚本提前将可执行的命令语句写入文件,顺序执行、解释器逐行解释代码。

规范脚本的构成

一个合格规范的脚本应该包括以下这些内容

  • #!脚本声明—使用哪种解释器解释代码
  • 注释信息(步骤、思路、用途等),以#开始的为注释信息
  • 可执行语句
    在这里插入图片描述

执行脚本的多种方式

  • 方式一、需要为文件赋予可执行的权限

    • 绝对路径执行
      在这里插入图片描述

    • 相对路径执行
      在这里插入图片描述

  • 方式二、不需要文件有可执行权限

    • sh脚本文件名
      在这里插入图片描述
    • source脚本文件名,不会启动子进程,通过pstree查看进程树

变量

定义变量

  • 以固定的名称,存放可能有变化的值
  • 定义变量的格式 变量名=变量值
  • 取消变量的格式 unset 变量名
  • 注意事项:
    • =两边不能有空格,不要使用关键字做变量名,如ls、cd等
    • 如果变量名已经存在则覆盖之前的变量值
    • 变量名称有:字母、数字、下划线组成,不能以数字开头

查看变量

查看变量的语法格式:

  • $变量名
  • ${变量名}

变量类型

  • 环境变量(变量名通常大写,有操作系统维护)
  • 位置变量(bash内置变量,存储脚本执行时的参数)
  • 预定义变量(bash内置变量,可以调用但是不能赋值或者修改)
  • 自定义变量(用户自主设置)

环境变量

存储在/etc/profile或~/.bash_profile
命令env可以列出所有的环境变量
常用环境变量:PATH 、PWD、USER、UID、HOME、SHELL

位置变量

存储脚本执行时的参数
使用$n表示,n为数字序列号
$1、$2、… ${10}、 ${11}、…
$1是脚本后面跟的第一个参数
$2是脚本后面跟的第二个参数

预定义变量

用来保存脚本程序的执行信息,可以直接使用这些变量,但是不能直接为这些变量赋值。

变量名含义
$0当前所在的进程或脚本名
$$当前运行进程的PID号
$?命令执行后的返回状态,0表示正常,1或者其他值表示异常
$#已加载的位置变量个数
$*所有位置变量的值

多种引号的区别

  • 双引号 " ":允许扩展,以$引用其他变量
  • 单引号’ ':禁用扩展,即便$也视为普通字符
  • 反引号 :将命令的执行输出作为变量值,$()与反引号等效。

read 标准输入取值

read从键盘读入变量值完成赋值
格式:read [-p “提示信息”] 变量名
-p 可选,-t 可指定超时秒数,-s设置师傅在终端显示输入的内容

echo “ p a s s " ∣ p a s s w d − − s t d i n " pass" | passwd --stdin " pass"∣passwd−−stdin"name”

变量的作用范围

局部变量–新定义的变量默认只在当前Shell环境中有效,无法在子Shell环境中使用
全局变量–全局变量在当前Shell及子Shell环境中均有效,格式export x=11

Shell中的运算

整数运算

  • 加法:num1 + num2
  • 减法:num1 - num2
  • 乘法:num1 * num2
  • 除法:num1 / num2
  • 取余数运算:num1 % num2

$[]算式替换

使用 $[]或 $ (())表达式
格式:$[整数1 运算符 整数2]
计算结果替换表达式本身,可结合echo命令输出

变量的自增/减等操作

简写表达式完整表达式
i++i=i+1
i–i=i-1
i+=2i=i+2
i-=2i=i-2
i*=2i=i*2
i/=2i=i/2
i%=2i=i%2

let i=2*3 echo $i 等效于 echo $[i=2 * 3]

小数运算–bc计算器

Bash内建机制仅支持整数运算,不支持小数运算,我们可以通过计算器软件bc实现小数运算

  • 如果没有该软件则需要使用yum安装
  • bc支持交互式和非交互式两种方式计算,scale=n可以约束小数位

echo “scale=2;10/2” | bc

小数比较

bc支持的比较操作符:> >= < <= == !=
表达式成立则返回1,否则返回0

echo “1>2” | bc

echo回显

-n 选项:不换行
-e 选项:支持扩展属性–设置字符颜色等
echo -e “\033[44mOK\033[0m” OK字符就会变颜色

图像质量评估:使用 SSIM 计算图像相似性 在图像处理领域,衡量两幅图像之间相似性的一种常见方法是使用结构相似性指数(SSIM)。SSIM 是一种全参考的图像质量评估指标,它不仅考虑了图像的亮度、对比度,还考虑了结构信息。在本文中,我们将介绍一个使用 Python 和 OpenCV 实现的 SSIM 计算脚本,并使用该脚本评估两幅图像的相似性。 阅读详情

相关推荐

图形学基础|屏幕空间反射(SSR)

图形学基础|屏幕空间反射(SSR) 文章目录图形学基础|屏幕空间反射(SSR)一、前言二、反射技术概述2.1 环境贴图反射2.2 IBL反射2.3 平面反射(Planar Reflections)2.4 屏幕空间反射(Screen Space Reflection)2.4.1 SSR的基本原理2.4.2 SSR的优缺点三、SSR(Screen-Space Reflection)实现3.1 Efficient GPU Screen-Space Ray Tracing3.1.1 2D Raymarching v

【黑键】 3万+

shell脚本基础知识详解

shell脚本基础知识 文章目录shell脚本基础知识1、什么是shell2、shell脚本的意义3、如何创建shell脚本4、如何执行shell脚本5、如何对脚本进行调试 1、什么是shell shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的shell命令就包括ls、cd、pwd等等。总结来说,shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。 2、shell脚本的意义 shell脚本

weixin_44310047的博客 3063

ADS入门学习笔记——低噪声放大器(2)

1、输入匹配网络; 2、输出匹配网络;

weixin_42126696的博客 4990

shell脚本的基础知识

一、Shell脚本概述 1.1Shell基本概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限 可结合各种Shell控制语句以完成更复杂的操作 1.2 Shell脚本应用场景 重复性操作 交互性任务 批量事务处理 服务运行状态监控 定时任务执行 1.3 Shell作用——翻译官 shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。 二、shell编程规范 2.1 用

一起加油吧 2259

51单片机STC8G1K08驱动ws2812记录

使用51单片机控制17个2812灯,这里选择STC8芯片,最大频率可以达到35M,参考网上的各种文章案例,使用定时器做的时候实测做不到规格书要求的245-345ns,STC8G1K08不带PWM,所以只能使用nop来做,好在单片机在这里只有做编程灯的功能,省略测试过程,下面是程序,使用的是24MHz内部晶振 //设置一个灯珠 void SendOnePix(unsigned char *ptr) { unsigned char i,j; unsigned char temp; fo...

的博客 7320

文档多模态识别工具对比:MinerU、PaddleOCR、Marker

本文对比了三款文档多模态识别工具:MinerU、PaddleOCR和Marker。MinerU专注于中文文档的端到端解析,支持复杂元素提取和结构化输出,适合中文论文和教材解析。PaddleOCR是通用OCR工具包,支持多语言和全流程任务,适用于发票、车牌等图像OCR。Marker则注重多语言支持和轻量化部署,适合英文论文和技术文档的快速转换。三者在核心技术、中文优化、表格处理、输出格式、部署复杂度和适用语言等方面各有优劣。选型建议根据具体需求:MinerU适合高精度中文解析,PaddleOCR适合定制化OC

朴拙科技的博客 4744

学习shell脚本之前的基础知识

学习shell脚本之前的基础知识一个不错的shell 脚本教程 入门级

limanjihe的专栏 534

23.501中英对照(46):5QI到Qos特征的映射

注4:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为1毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注5:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为2毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注6:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为5毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注:建议为任何新的非GBR资源类型的标准化5QI分配小于64的值。

51学通信的博客 1296

shell脚本基础知识整理

普通变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效环境变量:生效范围为当前shell进程及其子进程本地变量:生效范围为当前shell进程中某代码片断,通常指函数变量赋值一般变量的赋值临时生效,当终端退出时,变量会自动删除,无法持久保存。在脚本编写执行的过程中,建议脚本的最后释放变量unset <VARIABLE_NAME>,避免冲突## VALUE可以是以下多种形式直接字串:name='root'

qq_58817548的博客 1603

东方财富API隐藏技巧:这样获取分时均价线数据更稳定(避坑指南)

本文深入解析东方财富API获取股票分时数据,特别是分时均价线的实战技巧与避坑指南。针对高频调用中常见的请求失败、数据错位及IP限制等问题,提供了从接口参数深层解析、稳健请求与错误处理机制,到系统优化与数据校验的全流程解决方案,帮助开发者构建稳定可靠的数据采集系统。

rice5的博客 2531

FPGA 学习笔记:Vivado 工程更改FPGA 型号

FPGA 学习笔记:Vivado 工程更改FPGA 型号

坚韧与专注 1万+

shell 脚本的基础知识

shell 脚本的基础知识 文章目录shell 脚本的基础知识简介实例 简介 shell 简介 既是命令解释器又是编程语言。 是一个执行命令的宏处理器。 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 可以用来编写 Shell 脚本。 shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本,但 shell 和 shell script 是两个不同的概念。 S

毕加索的忧伤 618

Python爬虫实战:使用最新技术爬取新浪新闻首页数据

本文详细介绍了三种爬取新浪新闻首页的技术方案,从简单的requests-html到强大的Playwright,再到分布式Scrapy架构。小规模爬取:requests-html或aiohttp方案需要JavaScript渲染:Playwright方案大规模分布式爬取:Scrapy-Redis方案。

2201_76125261的博客 1243

Linux Shell 脚本编程基础知识篇—shell简介以及基本操作

Shell本身是一个用C语言编写的程序, 它是用户使用Linux的桥梁。Shell既是一种命令语言, 又是一种程序设计语言。所有的Linux命令都是Shell脚本语言。

weixin_55767624的博客 2722

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

详解shell脚本的基础知识

shell是脚本中命令的解释器,shell语言是一种解释型语言。 练习:1.ip_show.sh 网卡 显示当前的IP,没有网卡报错,网卡不存在报错 2.host_messages.sh 显示当前主机的名称,ip登陆当前主机的用户 hostname: xxxxx ipaddress: xxxx.xxxx.xxx.xxx username: root 3.clear_log.sh 执行次脚本后可以清空日志,只有root可以清除

好久没说梦想的博客 2891

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

shell脚本学习——基础知识

一、常用快捷键 Tab键可补全命令和文件内容 ^c 终止运行的程序 ^z 前台运行的程序挂起到后台 ^d 退出 ^l 清屏 ^a 光标移动到命令行最前端 ^e 光标移动到命令行后端 ^u 删除光标前所有字符 ^k 删除光标后所有字符 ^r 搜索历史命令...

Lion_siege的博客 322

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【shell脚本3】shell脚本的基础知识

shell脚本的基础知识 一、什么是shell 脚本中命令的解释器 二、shell脚本的意义 1.记录命令执行的过程和执行逻辑,以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 3.如何创建shell脚本 #!/bin/bash ##幻数 ...

weixin_48819467的博客 465

【Shell】Shell脚本基础知识

脚本在子 shell 中对变量的操作,默认情况下不会影响到父 shell(即执行脚本的当前 shell)环境。搜索passwd文件以 u 开头的所有行,并输出该行的第1列和第2列,中间用逗号分隔,且在所有行前面添加列名" user,shell ",在最后一行添加" end of file “。(3)在脚本路径前使用 . 或 source :在当前 shell 环境中执行脚本,脚本中对变量的修改、环境变量的设置等操作,都会影响到当前的 shell 环境。(1)语法:read (选项) (参数)

2302_79952574的博客 973

shell脚本基础知识(入门)

本文会全面介绍shell脚本的基础知识。

gogo0707的博客 7327

Shell脚本的基础知识学习

Shell脚本的基础知识学习

扬帆起航 610
上一篇: 内置函数_数学运算
下一篇: Shell脚本语法知识
b14050421
博客等级 码龄9年 49粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值