12、Linux-Shell01:变量、字符串和数组、注释

目录

一、基础知识

二、变量

1、定义变量

2、使用变量

3、只读变量

4、删除变量

三、字符串和数组

1、字符串

①单引号和双引号的区别

②#

③切片

2、数组

四、注释

1、单行注释

2、多行注释


一、基础知识

Linux的Shell有很多种,这里讨论的是Bash。

假设有Shell脚本名为helloWorld.sh,执行这个脚本(前提是脚本具有可执行权限)可以通过命令

./helloWorld.sh,在helloWorld.sh所在目录下执行此命令即可运行脚本。

在这种情况下:需要在脚本开头写上“#! /bin/bash”,这样系统才知道用什么解释器执行

/bin/bash helloWorld.sh,这种情况下不需要在脚本开头写上“#! /bin/bash

这是一个shell脚本的例子

其中echo命令用于打印一个字符串。


二、变量

1、定义变量

shell中的变量定义时和大多数编程语言的变量规则一致:如由字母数字下划线组成且不以数字开头,不能与关键字重合等。

不同的是,在赋值符号‘=’左右两侧不应该使用空格,否则可能导致错误。

2、使用变量

在变量前面加上$即可使用变量,可以在变量外面加上{},以帮助解释器确定变量边界

在这个例子中,如果使用第二个变量skill时没有加{},解释器会把skillScript当成变量名,这会导致错误。

3、只读变量

使用readonly可以设置变量为只读类型,之后无法修改其内容

例如readonly name

4、删除变量

使用unset可以删除变量,之后不能再次使用。

例如unset name,注意无法删除只读变量


三、字符串和数组

1、字符串

①单引号和双引号的区别

通过单引号或双引号包含的内容被视为字符串,区别在于:单引号不识别变量,双引号识别变量。

②#

通过#可以获取字符串长度,使用方法为echo ${#str}

③切片

echo ${str:6:5},第一个数字6代表开始位置索引(第一个是0),第二个数字5代表切片长度

2、数组

bash仅支持一维数组,通过下标访问数组元素,下标从0开始。使用@获取全部元素。

# 定义数组
[root@VirTrxcx test]# clazz=("ds" "co" "os" "cn")[root@VirTrxcx test]# echo ${clazz[2]}
os
[root@VirTrxcx test]# echo ${clazz[@]}
ds co os cn# 获取数组长度
[root@VirTrxcx test]# arrayLength=${#clazz[@]}
[root@VirTrxcx test]# echo $arrayLength 
4

四、注释

1、单行注释

#

2、多行注释

echo 注释内容前:<<EOF这里是注释内容EOFecho 注释内容后

EOF可以换成其他内容,前后一致即可。

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

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

相关文章

npm run build小技巧

在config/index.js中设置build.index与build.assetsRoot,这样之后在每次npm run build后会将编译后文件放在指定的路径下。 场景&#xff1a; 1、如果你本地有nginx服务&#xff0c;可将对应两个路径设置到nginx的html路径下&#xff0c;实现每次编译后即可生效的效果。 举例&…

OPENCV(0-1之0.2)

OPENCV-0.2 学习安排图像基础像素访问和修改像素值 色彩空间转换RGB到灰度的转换RGB到HSV的转换 图像操作裁剪缩放旋转和翻转 图像滤波平滑和模糊图像边缘检测 图像变换仿射变换透视变换 总结 官方文档 学习安排 图像基础 像素&#xff1a;了解像素的概念&#xff0c;包括像素…

Linux发展史目录结构Vim编辑器

Linux入门 一、Linux的发展史二、Linux的目录结构2.1 Linux系统中一切皆文件2.2 Linux中几个重要的目录 三、VIM编辑器3.1 用户名主机名 /xxx的含义3.2 一般模式3.3 编辑模式和指令模式3.4 三种模式之间的转换 一、Linux的发展史 上面俩兄弟用C语言写出了Unix操作系统(右边那个…

F5是什么意思?从BIG-IP Next核心价值了解F5

在日益变化的威胁环境中&#xff0c;企业必须配备兼具强大适应性和自动化特性的应用安全解决方案&#xff0c;这些解决方案不仅要易于使用&#xff0c;同时还需要具备全面的安全防御能力。当我们将目光聚焦于安全领域相关的产品&#xff0c;可以发现F5推出的产品不仅直观易用&a…

Unity WebGL ios 跳转URL

需求&#xff1a; WebGL跳转网址 现象: Application.OpenURL("https://www.baidu.com"); 这个函数在安卓上可以用&#xff0c;IOS 不管用 解决方案: 编写js插件&#xff0c;unity调用js函数&#xff0c;由js跳转网址 注意事项 &#xff1a; 插件后缀为.jsli…

springBean的三种实例化

spring容器创建javaBean的实例&#xff0c;有三种方式。 分别是通过构造方法、 静态工程方法、 实例工厂方法。 前言&#xff1a; 1.构造方法实例化方式: 我的理解&#xff1a; 通过bean标签结合property调用set方法&#xff1b;通过bean标签结合constructor-arg调用构造方法…

yolov5模型压缩-torch_pruning

参考论文:DepGraph: Towards Any Structural Pruning(https://arxiv.org/abs/2301.12900) 主要原理:物理的移除参数,并自动找出层与层以及层之间的依赖,完成模型的自动裁剪 模型压缩效果:yolov5剪枝流程如下: pip install torch_pruning 新建prune.py: import torch_…

Java项目:50 ssm010基于ssm的新能源汽车在线租赁管理系统+vue

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员&#xff1b;首页、个人中心、用户管理&#xff0c;站点管理员管理、汽车信息管理&#xff0c;借车信息管理&#xff0c;我的收藏管理、系统管理…

走进网络世界 了解一些基础知识

走进网络 1.认识计算机 1.计算机网络是由计算机和通讯构成的&#xff0c;网络研究的是“通信”。 ------1946 世界上第一台计算机 2.终端&#xff1a;只有输入和输出功能&#xff0c;没有计算和处理功能。3.数据&#xff1a;一串数字&#xff08;二进制数&#xff09;&#x…

cesiumlab中shp转3dtiles白模效果一

安装cesiumlab 如果没有安装cesiumlab&#xff0c;去官网下载安装一个即可 http://www.cesiumlab.com/cesiumlab.html 效果 步骤 1、准备shp面数据 2、打开cesiumlab软件转换 选择shp面数据 设置高度&#xff0c;如果shp面中有高度字段&#xff0c;可以用高度字段&#xff…

基于Springboot的集团门户网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的集团门户网站&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

(C语言)球球大作战

前言&#xff1a; 这款简易版的球球大作战是一款单人游戏&#xff0c;玩家需要控制一个小球在地图上移动&#xff0c;吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写&#xff0c;旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前&#xf…

基于FPGA的图像锐化算法(USM)设计

免费获取源码请关注微信号《FPGA学习笔记册》&#xff01; 1.图像锐化算法说明 图像锐化算法在实际的图像处理应用很广泛&#xff0c;例如&#xff1a;医学成像、工业检测和军事领域等&#xff1b;它的作用就是将模糊的图像变的更加清晰。常用的图像锐化算法有拉普拉斯算子、s…

算法--每日一练

1.数字A除本身以外的因数之和为数字B&#xff0c;B除本身之外的因数之和为A&#xff0c;这样的数对称为相亲数&#xff0c;例如&#xff1a;220的真因数之和为1245101120224455110284&#xff0c;284的真因数之和为 12471142220&#xff0c;请找出2到10000之间所有的相亲数。 …

C#面:简单介绍枚举

枚举&#xff08;Enumeration&#xff09; 枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。&#xff08;这个拗口的表述来自官方文档&#xff09; 翻译成人话&#xff1a; 枚举是值类型。枚举的成员是常量默认情况下&#xff0c;枚举成员的关联常数值为类型 int…

linux上MySQL的安装

(1)解压安装包 tar -xzvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql(2)创建数据目录 [roothecs-161929 3306]# mkdir -p /data/mysql/3306/data [roothecs-161929 3306]# mkdir -p /data/mysql/3306/binlog [roo…

react框架中无构建模式直接使用es6组件

react框架&#xff0c;看到的总是使用es5&#xff0c;通过webpack编译构建。react官方&#xff0c;直到现在的v18.1.0版本中&#xff0c;只有cjs和umd版本&#xff0c;都没有esm&#xff08;es6&#xff09;版本&#xff0c;看起来是对es6的不认可&#xff1f; 但是&#xff0…

科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法

知网链接 一种修正评分偏差并精细聚类中心的协同过滤推荐算法 - 中国知网 (cnki.net) 摘要 协同过滤作为国内外学者普遍关注的推荐算法之一&#xff0c;受评分失真和数据稀疏等问题影响&#xff0c;算法推荐效果不尽如人意。为解决上述问题&#xff0c;本文提出了一种改进的聚类…

centos 7.x 上安装 AI insightface + pytorch + cuda

centos 英伟达检查工具 lsb_release -a nvidia-smi lspci | grep -i nvidia CUDA v11.7 安装 首先在centos机器上必须先安装英伟达驱动&#xff0c;参考下面的文档 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html# https://developer.nvidia.com/c…

Docker单机下的容器网络管理

Docker容器网络管理 容器网络类型 Docker安装以后&#xff0c;会在我们的主机上创建三个网络 docker network ls可以看到有bridge、host和none三种网络类型 我们先把ubuntu的网络环境配置一下 docker run -it ubuntu apt update apt install net-tools iputils-ping curl这…