shell数据类型

shell常用的数据类型有 字符串、整数型、数组

字符串

字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号

建议使用双引号,因为双引号里可以有变量和特殊字符,可以按照变量和特殊字符去使用

声明字符串类型的变量:
name="Alnk"

1 字符串拼接

2 获取字符串长度

3 字符串切片(顾首不顾尾)

4 替换字符串

一个 / 匹配第一个字符串,两个 // 匹配所有字符串

5 字符串删除

整数型

在Shell中所有的变量默认都是字符串型。
也就是说,如果不手工指定变量的类型,那么所有的数值都是不能进行运算的 如果想要进行数学运算,可以使用“$((运算式))”或“$[运算式]”方式运算

如果想进行小数运算可以借助bc计算器或者awk命令

数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小
用括号来表示数组,数组元素用空格符号分割开 数组元素的下标由0开始编号
获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0 声明数组类型的变量
1 直接声明
数组名=(值1 值2 ... 值n) 2 通过指定下标来声明
数组名[下标]=值 3 将命令输出作为数组元素
array=$((command)) 获取数组指定下标的值
${数组名[下标]} 使用“@”符号可以获取数组中的所有元素
${数组名[@]}
定义数组
数组名array,元素a b c
[root@localhost~]# array=(a b c) 获取所有元素
[root@localhost~]# echo ${array[*]}
a b c
[root@localhost~]# echo ${array[@]}
a b c 获取数组的长度
[root@localhost~]# echo ${#array[*]}
3 获取所有元素下标
[root@localhost~]# echo ${!array[@]}
0 1 2 通过下标0 1 2依次获取数组的每一个元素
[root@localhost~]# echo ${array[0]}
a
[root@localhost~]# echo ${array[1]}
b
[root@localhost~]# echo ${array[2]}
c 通过下标增加数组元素
[root@localhost~]# array=(a b c)
[root@localhost~]# array[3]="333"
[root@localhost~]# echo ${array[@]}
a b c 333
[root@localhost~]# echo ${array[3]}
333
[root@localhost~]# array[5]="555"
[root@localhost~]# echo ${array[@]}
a b c 333 555
[root@localhost~]# echo ${!array[@]}
0 1 2 3 5
[root@localhost~]# echo ${array[4]} # 此处下标4没有数据,不能单纯的从0 1 2 开始数数 [root@localhost~]# echo ${array[5]}
555 获取部分数组
[root@localhost~]# echo ${array[*]:0:2}
a b 删除第一个元素
[root@localhost~]# unset array[0] 删除整个数组
[root@localhost~]# unset array

数组的其他示例

用seq生成数字,添加到数组

遍历数组

while read line添加数组

判断一个元素是否在数组中

Shell-02-数据类型的更多相关文章

  1. java基础-02数据类型

    基本类型 整数 byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 最小值是 -128(-2^7) 最大值是 127(2^7-1) 默认值是 0 byte 类型用在大型数组中节约空间 ...

  2. Linux Shell 02 流程控制语句

    一.if语句格式:支持if/elif/else形式,支持嵌套 1. command执行成功(及退出状态为0)时,执行command2 2. 当判断条件为test命令时,判断结果为true时,执行com ...

  3. Python学习笔记:02数据类型

    Python 数据类型 python中标准的数据类型有 基础类型 整型(长整型) 浮点型 复数型 布尔型 序列类型 字符串 列表 元组 字典 整型 整型和长整型并不严格区分,整型int的表达范围和计算 ...

  4. Python Revisited Day 02 (数据类型)

    目录 Python 关键字 整数 整数转换函数 整数位逻辑操作符 浮点类型 math模块函数与常量 复数 精确的十进制数字 decimal 字符串 str.format() 格式规约 Python 关 ...

  5. .Net转Java.02.数据类型

    .NET中常见的数据类型分类分别是值类型和引用类型 值类型包括(基元类型.struct.枚举) 引用类型包括(类.类.数组.接口.指针) Java分为,基本类型和类   C#   Java   值类型 ...

  6. C#语言-02.数据类型

    a. 数据类型 i. 值类型:是一种由类型的实际值表示的数据类型,存储在栈内的存储空间中,由于编译器编译后将源代码中的值类型变量直接对应到唯一的存储空间上,直接访问该存储空间,故值类型的数据具有较快地 ...

  7. python之02数据类型学习

    参考链接:http://www.cnblogs.com/yuanchenqi/articles/5782764.html python的数据类型有:Number.Boolean.String .Lis ...

  8. java 基础 02 数据类型、运算符、分支结构

    内容: (1)数据类型 (2)运算符 (3)分支结构 1.数据类型 java语言中的基本数据类型:byte.short.int.long.float.double.boolean.char. 1.1布 ...

  9. 「JavaSE 重新出发」02. 数据类型与运算符

    「TOC」 Java 程序基本要求 Java 数据类型 基本数据类型 复合数据类型 运算符 逻辑运算符 位运算符 运算符优先级 Java 程序基本要求 public class : 一个 Java 文 ...

  10. Python3程序设计指南:02 数据类型

    目录 1.标识符与关键字 1.1 规则 1.2 约定 2.Integral类型 2.1 整数 2.1.1 数值型操作符与函数 2.1.2 使用数据类型创建对象 2.1.3 整数位逻辑操作符 2.2 布 ...

随机推荐

  1. 资源:jenkins下载路径

    Jenkins版本下载路径 所有版本:http://mirrors.jenkins.io/war/

  2. CTF反序列化逃逸

    刷了一下CTF反序列化的题,去年没有好好了解.又补了一次PHP,害太菜了.每天看看别人的博客真的可以鼓舞人.简单记录一下两道字符串逃逸问题 推荐一个反序列化总结的很好的笔记https://www.cn ...

  3. VUE+ElementUI实现左侧为树形结构、右侧无层级结构的穿梭框

    工作中遇到一个需求,需要将一个数据选择做成穿梭框,但是要求穿梭框左侧为树形结构.右侧为无层级结构的数据展示,ElementUI自身无法在穿梭框中添加树形结构,网上搜到了大佬封装的插件但是对于右侧的无树 ...

  4. 深度学习之逻辑回归的实现 -- sigmoid

    1 什么是逻辑回归 1.1逻辑回归与线性回归的区别: 线性回归预测的是一个连续的值,不论是单变量还是多变量(比如多层感知器),他都返回的是一个连续的值,放在图中就是条连续的曲线,他常用来表示的数学方法 ...

  5. 禁用ipv6的两种方法

    1 通过系统配置文件/etc/sysctl.conf 在sysctl.conf文件中添加行 # 禁用整个系统所有接口的IPv6 net.ipv6.conf.all.disable_ipv6 = 1 # ...

  6. sql-4-函数

    常见函数 1.运算函数 select ABS(-8) -- 绝对值 select ceiling(9.4) -- 向上取整 select floor(9.4) -- 向下取整 select rand( ...

  7. LeetCode通关:听说链表是门槛,这就抬脚跨门而入

    分门别类刷算法,坚持,进步! 刷题路线参考:https://github.com/youngyangyang04/leetcode-master       https://github.com/ch ...

  8. 微信小程序云开发-数据库-用户删除数据

    一.在商品详情页添加[删除单条数据]按钮 进入goodDetail.wxml页面,添加[删除单条数据]按钮,绑定点击事件removeGood()  二.进入goodDetail.js文件,定义remo ...

  9. PAT乙级:1066 图像过滤 (15分)

    PAT乙级:1066 图像过滤 (15分) 题干 图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来.现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色 ...

  10. 安装geatpy库到指定的conda虚拟环境中

    在Anaconda Prompt中输入conda install geatpy,提示找不到这个库: 输入pip install geatpy,安装成功:但是安装在默认conda环境下(以下为pycha ...