shell脚本(三)

news2024/11/23 10:41:35

声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec


脚本参数传递与数学运算

echo 执行文件名是: $0
echo 第一个参数是: $1
echo 传递的参数作为一个字符串显示: $*
echo 传递的参数独立作为每一个字符串显示: $@
echo 传递到脚本的参数个数是: $#
echo 最后命令的退出状态: $?
echo 脚本运行的当前进程ID是: $$

可以向脚本程序传递一个或者多个参数,脚本中的$1,里面的数字是可以依次递增的,比如`$!,$2,$3`等等,其中$0(比较特殊表示文件名称)

那么好 我们利用vim写入脚本9.sh,再利用sh 9.sh执行文件,我们看看执行结果

执行文件名是: 9.sh
第一个参数是:
传递的参数作为一个字符串显示:
传递的参数独立作为每一个字符串显示:
传递到脚本的参数个数是: 0
最后命令的退出状态: 0
脚本运行的当前进程ID是: 4958

在这里插入图片描述

上面显示第一个参数为空,因为我们没有给它指定任何一个参数,我们给他指定一个参数name,9.sh name

执行文件名是: 9.sh
第一个参数是: name
传递的参数作为一个字符串显示: name
传递的参数独立作为每一个字符串显示: name
传递到脚本的参数个数是: 1
最后命令的退出状态: 0
脚本运行的当前进程ID是: 7132

在这里插入图片描述

然后第一个参数就为name
那么假设我们加入第二个,第三个参数,修改脚本

vim 9.sh echo

指定参数名为 sh 9.sh 1 2 3

执行文件名是: 9.sh
第一个参数是: 1
第二个参数是: 2
第三个参数是: 3
传递的参数作为一个字符串显示: 1 2 3
传递的参数独立作为每一个字符串显示: 1 2 3
传递到脚本的参数个数是: 3
最后命令的退出状态: 0
脚本运行的当前进程ID是:11875

在这里插入图片描述

由此得出 参数传递一般为$n(n表示数字 可递增),$*就是将参数当作统一的字符串显示出来,而$@是将每个字符串当作独立的字符串显示 这也是$*$@ 的区别,$#代表参数的个数,$?是查看命令执行状态的 如果显示为0 那么命令就是正常执行的,其他数字就是出错了,$$就是查看脚本当前进程id的

shell编程中进行数学运算

shell编程在数学运算的时候是相当麻烦的,python中的数学运算可能很简单,在shell编程中 利用expr进行运算

expr 5+10 回显 5+10 那么该怎么运算是 expr 5 + 10 这样写注意中间有空格 5(空格) +(空格)10
这仅仅适用于加减法,用于乘法就会报错
在这里插入图片描述
在这里插入图片描述

expr 6 \* 6 (乘法是用* python直接*就行了 要用\进行转义)
在这里插入图片描述

那么除法就用两种方法 一种是/取整 %取余数

expr 6 / 3\

在这里插入图片描述

expr 6 % 4

在这里插入图片描述

混合运算
expr 5 + 6 \* 7 (shell会按照先乘除后加减运算)
在这里插入图片描述

expr ( 5 + 7 ) / 2(如果有括号这样直接运算也会报错,括号也要进行转义)
在这里插入图片描述

expr \( 5 + 7 \) / 2

在这里插入图片描述

运算变量结合

name='expr 5 + 6'
echo $name

在这里插入图片描述

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

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

相关文章

一次封装,解放双手:Requests如何实现0入侵请求与响应的智能加解密

引言 之前写了 Requests 自动重试的文章,突然想到,之前还用到过 Requests 自动加解密请求的逻辑,分享一下。之前在做逆向的时候,发现一般医院的小程序请求会这么玩,请求数据可能加密也可能不加密,但是返回…

基于Springboot+Vue的救灾物资调动系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

『 Linux 』网络层 - IP协议(一)

文章目录 IP协议报文格式IP协议报文如何进行报头与有效载荷分离 网段划分CIDR特殊的IP地址 IP地址的数量限制私有IP和公网IP理解运营商 IP协议报文格式 IP协议报文格式与TCP协议的报文格式类似; IP报文的宽度也是32位; 对应的IP的实际报头为20字节为定长报头(固定长度); 版本 …

[cg] vulkan external_memory

最近在写硬件编码的代码,渲染器渲染出的RT需要给到编码器做硬编,有两种方法能做。 一是通过 map的方式,把显存里的数据读到cpu,拷贝一份cpu data给编码器,但这种方式会有内存拷贝的开销。所以,我们思考是否…

springboot课程答疑系统(代码+数据库+LW)

摘要 随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势,针对这个问题开发一个专门适应师生交流形式的网站。本文介绍了课程答疑系统的开发全过程。通过分析企业对于课程答疑系统的需求,创建了一个计算机管理课程答疑系统的方案。文章…

# issue 4 进程控制函数

目录 一、进程控制函数一 二、进程控制函数二 启动进程:(exec系列) 创建新进程: 测试代码: 测试结果: 三、进程控制函数三 结束进程: 测试代码: 测试结果: 四、…

Linux|进程程序替换

目录 什么是进程替换 替换原理 exec函数 exec* 函数的共性 什么是进程替换 进程程序替换是指将一个进程中正在运行的程序替换为另一个全新的程序的过程,但替换不是创建新进程,只是将对应程序的代码和数据进行替换。具体来说,这个替换过程涉…

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略(详细解题思路)

在当下, 日益发展的时代,宠物的数量应该均为稳步上升,在美国出现了下降的趋势, 中国 2019-2020 年也下降,这部分变化可能与疫情相关。需要对该部分进行必要的解释说明。 问题 1: 基于附件 1 中的数据及您的团队收集的…

人工智能(AI)与机器学习(ML)基础知识

目录 1. 人工智能与机器学习的核心概念 什么是人工智能(AI)? 什么是机器学习(ML)? 什么是深度学习(DL)? 2. 机器学习的三大类型 (1)监督式学…

【从零开始的LeetCode-算法】3233. 统计不是特殊数字的数字数量

给你两个 正整数 l 和 r。对于任何数字 x,x 的所有正因数(除了 x 本身)被称为 x 的 真因数。 如果一个数字恰好仅有两个 真因数,则称该数字为 特殊数字。例如: 数字 4 是 特殊数字,因为它的真因数为 1 和…

web——sqliabs靶场——第十二关——(基于错误的双引号 POST 型字符型变形的注入)

判断注入类型 a OR 1 1# 发现没有报错 ,说明单引号不是闭合类型 测试别的注入条件 a) OR 1 1# a)) OR 1 1# a" OR 11 发现可以用双引号闭合 发现是")闭合 之后的流程还是与11关一样 爆破显示位 先抓包 是post传参,用hackbar来传参 unam…

IDEA 下载源码很慢,Download Source使用阿里云镜像仓库

参考: IDEA maven本地仓库、中心仓库、远程仓库配置 在观看第三方jar包的api时,有时候需要下载源码看下注释。 这个时候用idea 上的提示的Download Source会发现一直下载不下来。 因此就怀疑用的是apache的maven仓库,不是我们用的 aliyun 镜…

1+X应急响应(网络)病毒与木马的处置:

病毒与木马的处置: 病毒与木马的简介: 病毒和木马的排查与恢复:

2024年亚太地区数学建模大赛D题-探索量子加速人工智能的前沿领域

量子计算在解决复杂问题和处理大规模数据集方面具有巨大的潜力,远远超过了经典计算机的能力。当与人工智能(AI)集成时,量子计算可以带来革命性的突破。它的并行处理能力能够在更短的时间内解决更复杂的问题,这对优化和…

一个小的可编辑表格问题引起的思考

11.21工作中遇到的问题 预期:当每行获取红包金额的时候若出现错误,右侧当行会出现提示 结果:获取红包金额出现错误,右侧对应行并没有出现错误提示 我发现,当我们设置readonly的时候,其实render函数依旧是…

【Linux课程学习】:进程描述---PCB(Process Control Block)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 1.基本概念: 🥝进程的…

java基础概念36:正则表达式1

一、正则表达式的作用 作用一:校验字符串是否满足规则;作用二:在一段文本中查找满足要求的内容。——爬虫 二、正则表达式 2-1、字符类 示例: public static void main(String[] args) {System.out.println("a".matc…

设计模式之 命令模式

命令模式(Command Pattern)是行为型设计模式之一,它将请求(或命令)封装成一个对象,从而使用户能够将请求发送者与请求接收者解耦。通过命令模式,调用操作的对象与执行操作的对象不直接关联&…

GRU (门控循环单元 - 基于RNN - 简化LSTM又快又好 - 体现注意力的思想) + 代码实现 —— 笔记3.5《动手学深度学习》

目录 0. 前言 1. 门控隐状态 1.1 重置门和更新门 1.2 候选隐状态 1.3 隐状态 2. 从零开始实现 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 3 简洁实现 4. 小结 0. 前言 课程全部代码(pytorch版)已上传到附件看懂上一篇RNN的所有细节&am…

实践篇:青果IP助理跨境电商的高效采集

写在前面: 近年来,跨境电商行业迅速崛起,成为全球贸易的重要组成部分。据市场调研机构Statista数据显示,2024年全球跨境电商市场规模预计将突破5万亿美元,覆盖数十亿消费者。跨境电商的竞争日益激烈,商家不…