shell的编程方式

文章目录

  • 变量
    • 俩种方式
      • 第一种方式
      • 第二种方式
    • 取消变量
    • 数组
      • 创建数组
      • 获取数组元素的方式
    • read输出的方式
      • 限制输入的方式
  • 流程控制方式
    • for循环输出的方式
      • 第一种方式
      • 第二种方式
      • while循环输出的方式
      • select选择输出的方式
  • 判断方式
    • 判断的四种方式
      • 第一种方式
        • 第二种方式
        • 第三种方式
  • 算术的方式
    • 算术运算符号
    • 算术第二种方式
  • 字符串操作
      • 返回字符串长度
      • 截取字符串
      • 查询字符
      • 正则表达式
  • cut 关键字方式
      • 获取 第三行数据
      • 分割的方式
      • 提取后面4个字符

变量

俩种方式

第一种方式

直接输出的方式
=前后不能有空格

age=0
echo $age

在这里插入图片描述

第二种方式

变量不能直接修改

declear -r age=20
echo $age
age=30

在这里插入图片描述

declare -i cc=qq
cc=000
echo $cc

发现修改变量为0发现变量不能被修改
在这里插入图片描述

declare +i xx=www
xx=cc
echo $xx

发现变量可以被修改的方式
在这里插入图片描述

取消变量

name=tiantian
unset name
echo $name

在这里插入图片描述

数组

创建数组

arr=(1,2,3,4)
echo $arr

获取数组元素的方式

arr[下标]

arr[0]

read输出的方式

read -p "请输入的方式" name
echo $name

限制输入的方式

read -t 5 -sp "请输入密码" name
echo $name

流程控制方式

for循环输出的方式

第一种方式

for i in 1 2 3
do
	echo $i
done

第二种方式

for i in {1..4}
do
	echo $i
done

while循环输出的方式

i=1
while((5>i))
do
	echo $i
	((i++))
done

select选择输出的方式

select i in 1 2 3 4
do
	echo $i
	break;
done

在这里插入图片描述

判断方式

判断的四种方式

注意[] 前后必须要有空格

第一种方式

[ 表达式]

a=1
b=2
if [ $a = $b ]
then
	echo "相等"
else
	echo "不想等"
fi
第二种方式

[[ 表达式 ]]

a=1
b=2
if [[ $a = $b ]]
then
	echo "相等"
else
	echo "不想等"
fi
第三种方式
a=1
b=2
if [[ $a == $b ]]
then
	echo "相等"
else
	echo "不想等"
fi

算术的方式

算术运算符号

result=`expr 1 + 1`
echo $result
result01=`expr 10 / 2`
echo $result01
result02=`expr 10 % 2`
echo $result02

算术第二种方式

(())

echo $((5+1))
echo $((5*2))
echo $((5%2))

字符串操作

返回字符串长度

expr length "xxxx"

截取字符串

截取1到3个字符

expr substr "qqqq" 1 3

查询字符

expr index 字符串 查询字符

expr index "xxxqxx" "q"

正则表达式

expr match 字符串 正则表达式

expr match "xxacc" "/[A-Z]/g"

cut 关键字方式

文本的截取的方式

获取 第三行数据

cut -f 3 book.txt

分割的方式

cut book.txt -d , -f 1

提取后面4个字符

cut book.txt -c 4-

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot+vue+mybatis房屋租贷系统+PPT+论文+讲解+售后

本论文系统地描绘了整个网上房屋租赁系统的设计与实现,主要实现的功能有以下几点:管理员;首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理,前…

parseInt函数

貌似遇到问题了,在Java中,parseInt方法是java.lang.Integer类的一个静态方法,它用来将字符串转换为基本数据类型int。如果字符串不能被解析为有效的整数,parseInt会抛出一个NumberFormatException。 原来是取整串转换,…

行心科技|中科利众:健康科技新合作,营养与科技融合前行

2024中国国际大健康产业文化节暨第34届国际大健康产业交易博览会于2024年5月31日在保利世贸博览馆盛大开幕,行心科技与中科利众(贵州)生物科技有限公司不谋而合,就“膳食机能健康问题解决方案”达成战略合作,共同开启膳…

Android——热点开关演讲稿

SoftAP打开与关闭 目录 1.三个名词的解释以及关系 Tethering——网络共享,WiFi热点、蓝牙、USB SoftAp——热点(无线接入点),临时接入点 Hostapd——Hostapd是用于Linux系统的软件,,支持多种无线认证和加密协议,将任…

mmdetection的生物图像实例分割三:自定义数据集的测试与分析

mmdetection的生物图像实例分割全流程记录 第三章 自定义数据集的测试、重建与分析 文章目录 mmdetection的生物图像实例分割全流程记录前言一、测试集的推理1.模型测试2.测试数据解析 二、测试结果的数据整合三、生物结构的重建效果 前言 mmdetection是一个比较容易入门且上…

【Linux】Linux环境基础开发工具_5

文章目录 四、Linux环境基础开发工具Linux小程序---进度条git 未完待续 四、Linux环境基础开发工具 Linux小程序—进度条 上篇我们实现了一个简易的进度条,不过那仅仅是测试,接下来我们真正的正式实现一个进度条。 接着编写 processbar.c 文件 然…

java第二十课 —— 面向对象习题

类与对象练习题 编写类 A01,定义方法 max,实现求某个 double 数组的最大值,并返回。 public class Chapter7{public static void main(String[] args){A01 m new A01();double[] doubleArray null;Double res m.max(doubleArray);if(res !…

如何通俗易懂地理解大模型参数?

大型语言模型 (LLM) 的大小是通过参数数量来衡量的。举几个典型例子,GPT-3 有 1750 亿个参数,1750亿也可称为175B(1B 10亿),Meta最新开源的Llama3 参数数量在 80 亿到 700 亿之间,智谱公司最新开源的GLM4-…

龙叔Linux:别名(alias)

在Linux中,别名(alias)是一个命令的简短形式,通常用于简化或替换更长的命令序列。你可以使用alias命令来创建、查看和删除别名,定制自己专属的命令。一、创建别名 1.1、临时创建 你可以使用alias命令在命令行中直接定…

【MySQL】数据库入门基础

文章目录 一、数据库的概念1. 什么是数据库2. 主流数据库3. mysql和mysqld的区别 二、MySQL基本使用1. 安装MySQL服务器在 CentOS 上安装 MySQL 服务器在 Ubuntu 上安装 MySQL 服务器验证安装 2. 服务器管理启动服务器查看服务器连接服务器停止服务器重启服务器 3. 服务器&…

web刷题记录(4)

[GKCTF 2020]cve版签到 进来应该是给了个提示了,就是要以.ctfhub.com结尾 还有一个超链接,这题的ssrf还是挺明显的,抓包看看 发现回显里面有提示 说是和本地有关,那么也就是说,要访问127.0.0.1,大概意思就…

搜索与图论:树的重心

搜索与图论&#xff1a;树的重心 题目描述参考代码 题目描述 输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例 4参考代码 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010, M N * 2;int n, m…

2024 Q1企业级SSD市场暴涨,国产努力追赶!

在2024年第一季度&#xff0c;由于对高容量存储需求的激增&#xff0c;企业级固态硬盘&#xff08;SSD&#xff09;市场的收入实现了显著增长&#xff0c;达到了37.58亿美元&#xff0c;与上一季度相比增长了62.9%。这一增长主要得益于供应商减产导致的高容量订单需求未得到满足…

【WP】猿人学_17_天杀的Http2.0

https://match.yuanrenxue.cn/match/17 抓包分析 居然对Fiddler有检测&#xff0c;不允许使用 那就使用浏览器抓包&#xff0c;好像没发现什么加密参数&#xff0c;然后重放也可以成功&#xff0c;时间长了也无需刷新页面&#xff0c;尝试Python复现。 Python复现 import …

SVM模型实现城镇居民月平均消费数据分类

SVM模型实现城镇居民月平均消费数据分类 一、SVM支持向量机简介二、数据集介绍三、SVM建模流程及分析一、SVM支持向量机简介 支持向量机是由感知机发展而来的机器学习算法,属于监督学习算法。支持向量机具有完备的理论基础,算法通过对样本进行求解,得到最大边距的超平面,并…

Activity->Activity中动态添加Fragment->Fragment回退栈BackStack

Fragment回退栈 Fragment回退栈用于管理Fragment的导航历史(添加、删除、替换)。每个Activity都有一个包含其所有Fragment的FragmentManager&#xff0c;调用其addToBackStack方法时&#xff0c;这个事务就会被添加到FragmentManager的回退栈中当用户按下返回键时&#xff0c;…

跑图像生成模型GAN时,遇到OSError: cannot open resource 报错解决办法

报错信息如下&#xff1a; Traceback (most recent call last): File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py", line 276, in <module> count train(dataloader, image_encoder, text_encoder, File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py…

三十九、openlayers官网示例Extent Interaction解析——在地图上绘制范围并获取数据

官网demo 地址&#xff1a; Extent Interaction 在openlayers中可以使用ExtentInteraction添加交互事件&#xff0c;配合shiftKeyOnly实现按住shift键绘制边界区域。 const map new Map({layers: [new TileLayer({source: new OSM(),}),],target: "map",view: new …

LeetCode 算法:合并区间c++

原题链接&#x1f517;&#xff1a;合并区间 难度&#xff1a;中等⭐️⭐️ 题目 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰…

一文搞懂常见的数据拆分方案

常见的几种数据拆分方案 1、客户端分片 直接在应用层实现读取分片规则&#xff0c;解析规则&#xff0c;根据规则实现切分逻辑。 这种方案优缺点&#xff1a; 侵入业务(缺点)&#xff1b; 实现简单&#xff0c;适合快速上线&#xff0c;容易定位问题&#xff1b; 对开发人员…