Shell脚本学习_字符串变量

目录

1.Shell字符串变量:格式介绍

2.Shell字符串变量:拼接

3.Shell字符串变量:字符串截取

4.Shell索引数组变量:定义-获取-拼接-删除


1.Shell字符串变量:格式介绍

1、目标:

能够使用字符串的三种方式

掌握三种方式的区别

能够获取字符串的长度

2、字符串的三种格式:

1.单引号格式

注意:任何字符都会原样输出,在拼接字符串中使用变量是无效的。

2.双引号格式,推荐使用

注意:其中包含了变量,那么该变量就会被解析得到的值,而不是原样输出。

字符串中还可以出现双引号的子字符串,但是需要转义。

3.不用引号方式

注意:字符串内不能出现空格

3、获取字符串的长度

语法:

echo ${#字符串变量名}

4、小结

1.能够使用字符串的3种方式:

单引号方式
双引号方式[推荐]
不使用引号方式

2.掌握3种方式的区别

单引号,原样输出,不会解析里面的变量

双引号,会解析里面的变量,并且可以使用子双引号,需要转义

不使用引号,也会解析里面的变量,但是不能含有空格,空格后面的字符串会作为命令去执行

3.能够获取字符串的长度

${#var name} 


2.Shell字符串变量:拼接

1、目标:

掌握字符串变量的拼接

2、字符串拼接方式:

1.无符号拼接

2.双引号拼接

3.混合拼接 


3.Shell字符串变量:字符串截取

1、语法:

2、示例要求

左侧从0开始,右侧从1开始

第一个: 

第二个:

第三个:

 第四个:

 第五个:

第六个:

 第七个:

4.Shell索引数组变量:定义-获取-拼接-删除

 1、目标

1.能够定义Shell数组
2.能够获取Shell数组数据
3.能够进行shell数组的拼接,删除

2、介绍

Shell 支持数组,数组是若干数据的集合,其中的每一份数据都称为数组的元素。
注意Bash shel 只支持一维数组,不支持多维数组。 

3、数组的定义

语法:

在Shell中,用括号()来表示数组,数组元素之间用空格来分割,语法为:

array_name=(item1 item2 .....)

array_name=([索引下标1]=item1  [索引下标2]=item2 ....)

4、数组的获取

语法:

1、 通过下标获取元素值,index从0开始

${arr[index]}
#注意:使用{}

2、获取值的同时赋值给其他变量

item=${arr[index]}

3、使用@或*可以获取数组中的所有元素

${arr[@]}
${arr[*]}

4、获取数组长度或个数

${#arr[@]}
${#arr[*]}

5、获取数组指定元素的字符程度

${#arr[索引]}

如图: 

5、数组的拼接

 语法:

使用@和*获取所有的数组元素后进行拼接

array_name=(${array1[@]}  ${array2[*]}  ....)

6、数组的删除 

语法:

#删除指定数组的元素

unset array_name[index]

#删除整个数组

unset array_name

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

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

相关文章

linux系统——ping命令

ping命令可以用来判断对远端ip的连通性,可以加域名也可以加公共ip地址 这里发送出56字节,返回64字节

ctfshow-web入门-命令执行(web41_exp与分析)

过滤不严,命令执行 preg_match(/[0-9]|[a-z]|\^|\|\~|\$|\[|\]|\{|\}|\&|\-/i, $c) 过滤掉了数字、字母以及一些符号,之前接触过的无字母 rce 是取反编码再取反,采用不可见字符去绕过正则,但是这里取反符号被过滤掉了&#x…

Kali linux学习入门

Kali linux学习入门 文章目录 Kali linux学习入门Kali Linux简介Kali Linux工具篇Kali Docker安装Docker 更换国内镜像源Kali 安装 docker compose Kali Linux文档篇Kali Linux 社区篇 Kali Linux简介 Kali Linux是专门用于渗透测试linux操作系统,它由BackTrack发展…

软件游戏找不到d3dx9_43.dll怎么办,三分钟教你解决此问题

在现代科技发展的时代,电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们可能会遇到一些问题,其中之一就是电脑缺失d3dx943.dll文件。这个问题可能会影响到我们的正常使用,因此了解其原因和解决方…

接口(API)开发,测试工具-apifox

前言 为什么需要接口(API)? 因为不同的平台或系统可能使用不同的技术栈、编程语言或数据格式。API提供了一个标准化的方式,使得这些不同的系统可以相互交换数据和功能调用,实现互操作性 在开发日常的项目交互中,不…

PyCharm中 Fitten Code插件的使用说明一

一. 简介 Fitten Code插件是是一款由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题。 前一篇文章学习了 PyCharm…

小白教程--- kali(po解)WIFI密码 (图文教程)

kali学得好,牢饭少不了!!! 原理: 模拟WiFi的已连接设备,强制让其下线重连,获取其握手包,使用密码字典(宝丽)婆洁。 环境(准备工作)&a…

深度解析:ChatGPT全面测评——功能、性能与用户体验全景剖析

从去年底至今,由 OpenAI 发布的大规模语言模型 ChatGPT 引发了几乎所有科技领域从业者的高度关注。据瑞银集团的报告显示,自 2023 年 1 月起,仅两个月内,ChatGPT 的月活用户数便超过了 1 亿。 ChatGPT 被誉为“最强 AI”&#xff…

操作系统总结

进程和线程的区别 本质区别: 进程是资源调度以及分配的基本单位。线程是 CPU 调度的基本单位。 所属关系:一个线程属于一个进程,一个进程可以拥有多个线程。地址空间: 进程有独立的虚拟地址空间。线程没有独立的虚拟地址空间&…

Day53 动态规划part12

LC309买卖股票的最佳时机含冷冻期 与LC122类似,都是可无限次购买股票,只不过引入了冷冻期的概念dp[i][0] 第i天持有股票收益;dp[i][1] 第i天不持有股票收益;情况一:第i天是冷静期,不能以dp[i-1][1]购买股票,所以以dp[…

性能测试 —— Jmeter对数据库压力测试

Jmeter先要和数据库建立连接,sql语句是在Jmeter中写的,但是语句的执行是在数据库里执行的,数据库再将执行结果返回给Jmeter。 在做jmeter数据库压力测试之前,要先检查是否有mysql-connector-java-5.1.39-bin.jar的这个包&#xf…

flink读取hive写入http接口

目录 0、创建hive数据 1、pom.xml 2、flink代码 3、sink 4、提交任务jar 5、flink-conf.yaml 6、数据接收 flink-1.17.2jdk1.8hive-3.1.3hadoop3.3.6passwordhttp0、创建hive数据 /cluster/hive/bin/beeline !connect jdbc:hive2://ip:10000 create database demo; d…

python 多任务之多进程

多任务 优势 多个任务同时执行可以大大提高程序执行效率,可以充分利用CPU资源,提高程序的执行效率 概念 是指在同一时间内执行多个任务 多进程 概念 进程(process)是资源分配的最小单位,他是操作系统进行资源分配…

鸿蒙北向开发 IDE DevEco Studio 3.1 傻瓜式安装闭坑指南

首先下载 安装IDE 本体程序 DevEco Studio 下载链接 当前最新版本是3.1.1,下载windows版本的 下载下来后是一个压缩包, 解压解锁包后会出现一个exe安装程序 双击运行安装程序 一路 next ( 这里涉及安装文件目录,我因为C盘够大所以全部默认了,各位根据自己情况选择自己的文件…

前端工程化:基于Vue.js 3.0的设计与实践

这里写目录标题 《前端工程化:基于Vue.js 3.0的设计与实践》书籍引言本书概述主要内容作者简介为什么选择这本书?结语 《前端工程化:基于Vue.js 3.0的设计与实践》书籍 够买连接—>https://item.jd.com/13952512.html 引言 在前端技术日…

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑: 页面发送ajax请求,将分页查询参数(page,pageSize, name)提交到服务端,获取分页数据; 页面发送请求,请求服务端进行图片下载,用于页面图片展示。 开发菜品信息分页查询功能&a…

数字人的技术实现方案比较

数字人的实现方案通常包括以下几个关键技术领域,数字人的实现是一个跨学科的领域,涉及到计算机图形学、人工智能、机器学习、自然语言处理等多个技术领域,随着技术的不断进步,数字人的能力和应用范围将不断扩大。北京木奇移动技术…

数仓开发:如何计算投放效果?

背景介绍 业务介绍:用户是通过低价引流进来,然后通过复购购买高价商品,可以多次购买。低价商品和高价商品均可以退款,高价商品由于各种复杂的场景,可能会有多次退款。低价商品如果退款是全退,不存在多次退…

使用树莓派和 L298N 来 DIY 小车底盘

树莓派小车可以作为 STEM(科学、技术、工程、数学)教育的工具,在实际操作中帮助学生理解和学习电子技术、编程和机器人原理。可以培养学生的动手能力、解决问题的能力和创新思维。 随着近年 AI 技术的高速发展,SLAM、VSLAM 甚至带…

2024儿科学中文核心期刊汇总,附投稿信息

第10版《中文核心期刊要目总览》入编了8本儿科学期刊,新入编的期刊是《临床小儿外科杂志》。常笑医学整理了儿科学核心期刊的详细参数,供大家在论文投稿时参考,有需要的赶紧收藏! 1.《中华儿科杂志》 (详细投稿信息请…