[Linux] shell脚本 - 实践

news/2025/9/19 8:39:24/文章来源:https://www.cnblogs.com/wzzkaifa/p/19100056

一、shell简介

脚本是一个文本文件,需要解释器(bash)

脚本后缀 test.sh 表示,也可以不需要

shell, python需要解释器:bash, tcsh sh, python解释执行
c, c++xx.c 编译链接---二进制可执行程序xx编译型
javaxx.java---javac编译----xx.class二进制不可执行---必须java解释器(虚拟机)java.exe---java.exe.xx.class编译解释

which bash

/usr/bin/bash

二、shell语法:变量,条件,循环,case,函数,脚本调用,c语言调用,awk,sed

1.变量

——shell中的变量的定义和值在解释器中,没有类型

——删除 unset

本地变量:用户自定义。

环境变量:

从父进程bash中继承。 添加环境变量:export

$PS1,$PS2:提示符

$0:shell脚本的名字

$#:传递给脚本参数的个数

$$:shell脚本的进程号

参数变量

$1, $2, ... 脚本程序的参数

运行 a.sh

1. bash a.sh

2. chmod u+x a.sh

2.条件

test条件类型:

if

3.循环

for

算术运算:

while

until

4.case

5.函数

——shell当中没有唯一主函数main()的要求

函数中定义的变量,在函数结束后,仍然能够调用,因为变量是在解释器中定义的。

函数调用:

传参:

6.脚本调用:

脚本调用:

1.普通调用

2. 以 . 命令执行,把脚本放在当前解释器中执行:

不同脚本变量调用

1.调用时 向b.sh传参:

2.做成环境变量(环境变量可以继承)

7. c语言调用shell脚本 exec

8.awk: 文本处理工具

格式化报文或从一个大的文本文件中抽取数据包

awk [-F field-separator] 'commmands' input-fils(s)

[-F field-separator] 分隔符,空格则省略

基本语法:awk 'pattern {action}' file

pattern: 匹配文本模式(正则表达式,数字或其他条件)。action: 当前模式匹配成功时执行的动作(打印,修改等)。file: 要处理的记录。

1.在命令行中awk。将小数转化为整数:

2.在脚本中awk。

应用举例:

9.sed

一个非交互性文本流编辑器,它编辑文件或标准输入到处的文本拷贝。就是sed

应用举例:

10.grep

11.sort

对文件内容进行排序。将许多不同域按不同的列顺序分类。

顺序排列:

逆序排列

12.uniq

用于重复行。通常与sort一起使用,先排序后去重。

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

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

相关文章

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

坚果云 坚果 jianguoyun 怎么收文件?

怎么收文件? 坚果云 坚果 jianguoyun 怎么收文件?注册、登录、免费的空间是 1GB。创建新的收集 https://www.jianguoyun.com/d/home#/ 查看收集结果:https://www.jianguoyun.com/#/

mssql创建字段依赖

CREATE TABLE temp061_t ( ID INT IDENTITY(1,1) PRIMARY KEY, RoleType INT NOT NULL, isSior INT NULL ); ALTER TABLE temp061_t ADD CONSTRAINT chk_is_sior CHECK ( (RoleType = 1 AND isSior IS NULL) OR (RoleT…

一款多功能Linux服务器Web管理面板

为什么使用 Docker 部署 EasyNode? 正如您所说,Docker 部署具有显著优势: 环境隔离与一致性:所有依赖(Node.js, PM2等)都封装在容器内,与宿主机环境隔离,避免冲突。在任何支持 Docker 的 Linux 发行版上,体验…

2025.9.16 测试

2025.9.16 测试1. Problem A: 逆序对(reverse) 根据冒泡,只要逆序对个数够就有方案 经过思考,我们找到第一个操作个数大于的前缀,然后操作前一个前缀,这样前边变有序后,与当前数成逆序对一定是个后缀,然后根据需…

完整教程:C/C++:看简介吧= ̄ω ̄=(2)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:P12558 [UOI 2024] Heroes and Monsters

题面: (这个没交洛谷,给学弟写的。) \(O(n^3)\) 考虑直接求出所有 \(ans_i\),前缀和回答询问。 \(a,b\) 先排序。由于我们只关心英雄的集合,所以怪兽我们贪心选择,如果我们选这个英雄那么选最前面的怪兽,否则选…

qt QHPieModelMapper详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

webRTC golang 构建核心

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数据分析与产品、运营、市场之间如何有效对齐 - 详解

数据分析与产品、运营、市场之间如何有效对齐 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

(附源码)基于Java的学生托管系统的设计与实现 - 实践

(附源码)基于Java的学生托管系统的设计与实现 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

agentgateway 简单试用

agentgateway 简单试用以下是一个简单示例,主要测试多mcp tools 的聚合,集成了基于litserve 的mcp server 以及genai toolbox 安装 目前github 上暂时未系统mac x86 架构的包,可以自己编译命令git clone https://gi…

SVG动画优化全攻略:从设计到性能提升

本文详细介绍了如何通过清洁设计、路径简化、代码分层和元素复用等技术优化SVG动画,涵盖工具选择、结构设计到CSS动画实现的全流程,帮助开发者创建高性能的SVG动画效果。粉碎动画第四部分:优化SVG SVG动画让我回想起…

深入解析:Go 1.25.1 自定义包调用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

MX 练石 2026 NOIP #7

0 + 10 + 10 + 0 = 20, Rank 152/199.好难好难好难好难,为数不多的罚坐了。 4h20min 怒砍 20pts /ohMX 练石 2025 NOIP #6 链接:link 题解:link 时间:4h20min (2025.09.18 13:50~18:10) 题目数:4 难度:A B C D估…

多元积性函数

定义:若函数 \(f(n,m)\) 满足 \(ab \perp xy \Rightarrow f(ax,by)=f(a,b)f(x,y)\),则称 \(f\) 为二元积性函数。 积性分解:将 \(x=\prod p_i^{\alpha _i},y=\prod p_i^{\beta _i}\),则有 \(f(x,y)=\prod f(p_i^{\…

国内AI云市场:挤不进前三,生存将成问题!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087中国AI云市场已形成“一大四强”的格局,阿里云以35.8%的份额独占鳌…

P14053 [SDCPC 2019] Median 题解

P14053 [SDCPC 2019] Median 题解P14053 [SDCPC 2019] Median 题解 一道水题。 观察题意,很快我们可以发现,对于元素 \(i\),其合不合法取决于一定大于 \(i\) 的数的个数与一定小于 \(i\) 的数的个数。 这时,我们只…

lQueryDef查询Evaluate报该几何不包含M值问题。

地理数据库既包括空间,又包括属性,属性类似于SQL表,理论上支持标准SQL查询。lQueryDef接口提供了高效查询方法,适用于对属性表或要素类的属性进行筛选和检索。 问题描述 一个简单的面积求和示例如下:IQueryDefFac…

我的首个RCE漏洞发现之旅:Apache ActiveMQ远程代码执行实战

本文详细讲述了作者如何通过系统化的子域名枚举和端口扫描,发现Apache ActiveMQ的CVE-2023-46604远程代码执行漏洞的全过程,包含具体的工具使用方法和实战技巧。我的首个RCE漏洞发现经历 大家好!在这篇文章中,我将…