shell编程系列4--有类型变量:字符串、只读类型、整数、数组

有类型变量总结:

declare命令和typeset命令两者等价

declare、typeset命令都是用来定义变量类型的

declare命令参数总结

.declare -r 将变量设置为只读类型
declare -r var="hello"
var="world" # 变量默认可以修改
[root@es01 shell]# var2="hello world"
[root@es01 shell]# var2="hello python"
[root@es01 shell]# echo $var2
hello python # 声明为只读变量,就不可修改
[root@es01 shell]# declare -r var2
[root@es01 shell]# var2="hello java"
-bash: var2: readonly variable . declare -i 将变量设为整数
# 默认把变量当做字符处理
[root@es01 shell]# num1=
[root@es01 shell]# num2=$num1+
[root@es01 shell]# echo $num2
+ # 声明为整数
[root@es01 shell]# declare -i num3
[root@es01 shell]# num3=$num1+
[root@es01 shell]# echo $num3 .declare -a 将变量定义为数组 # 定义数组
[root@es01 shell]# declare -a array
[root@es01 shell]# array=("jones" "make" "kobe" "jordan") # 列出数组所有元素
[root@es01 shell]# echo ${array[@]}
jones make kobe jordan
[root@es01 shell]# echo ${array[]}
make
[root@es01 shell]# echo ${array[]}
jones
[root@es01 shell]# echo ${array[]}
kobe # 数组长度
[root@es01 shell]# echo ${#array[@]} # 输出数组中元素长度
[root@es01 shell]# echo ${#array[]} [root@es01 shell]# echo ${#array[]} -f 显示此脚本前定义过的所有函数和内容
-F 进显示脚本前定义过的函数名 数组常用的方法(仅供参考,实际生产用的少) array=("jones" "mike" "kobe" "jordan")
输出数组内容:
echo ${array[@]} 输出全部内容
echo ${array[]} 输出下标索引为1的内容 获取数组长度:
echo ${#array} 数组内元素个数
echo ${#array[]} 数组内下标索引为2的元素长度 给数组某个下标赋值:
array[]="lily" 给数组下标索引为1的元素赋值为lily
array[]="hanmeimei" 在数组尾部添加一个新元素 删除元素:
unset array[] 清空元素
unset array 清空整个数组 分片访问:
${array[@]::} 显示数组下标索引从1开始到3的3个元素 内容替换:
${array[@]/an/AN} 将数组中所有元素包含an的子串替换为AN 数组遍历:
for v in ${array[@]}
do
echo $v
done .declare -x 将变量声明为环境变量 [root@es01 shell]# num5=
[root@es01 shell]# echo $num5 [root@es01 shell]# vim test1.sh
[root@es01 shell]# cat test1.sh
#!/bin/bash
# echo $num5 # 在脚本中直接使用shell环境中定义的变量是无法引用的
[root@es01 shell]# sh test1.sh # 当使用declare -x 变量后,就可以直接在脚本中引用了
[root@es01 shell]# declare -x num5
[root@es01 shell]# sh test1.sh declare +r 取消一个变量

shell编程系列4--有类型变量:字符串、只读类型、整数、数组的更多相关文章

  1. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  2. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  3. (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单

    原文 (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 接上一节:(C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开这 ...

  4. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...

  5. shell编程系列16--文本处理三剑客之awk模式匹配的两种方法

    shell编程系列16--文本处理三剑客之awk模式匹配的两种方法 awk的工作模式 第一种模式匹配:RegExp 第二种模式匹配:关系运算匹配 用法格式对照表 语法格式 含义 RegExp 按正则表 ...

  6. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...

  7. shell编程系列9--文本处理三剑客之sed概述及常见用法总结

    shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹 ...

  8. shell编程系列6--shell中的函数

    shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() ...

  9. shell编程系列2--字符串的处理

    shell编程系列2--字符串的处理 字符串的处理 .计算字符串的长度 方法1 ${#string} 方法2 expr length "$string" (如果string中间有空 ...

随机推荐

  1. SpringBoot -生成Entity和Dto互转的双向枚举类 -使用注解@Mapper(componentModel = "spring")

    1.导入pom文件 ,版本号自定 <!--mapStruct依赖--> <dependency> <groupId>org.mapstruct</groupI ...

  2. Ajax -异步请求 -jquery中ajax分类 -第一层 $.ajax -第二层($.get /$.post) -第三层($.getJson/$.getScript) -相应演示

    Ajax 1.标准请求响应时浏览器的动作(同步操作) 1.1浏览器请求什么资源,跟随显示什么资源2.ajax:异步请求. 2.1局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内 ...

  3. Linux 服务器性能出问题,排查下这些参数指标

    taozj马哥Linux运维 一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤 ...

  4. Java - 框架之 Spring

    一. IOC 和 DI IOC : 控制反转,将对象的创建权反转给了 Spring.DI  : 依赖注入,前提是必须要有 IOC 的环境,Spring 管理这个类的时候将类的依赖的属性注入(设置)进来 ...

  5. CodeForces - 55D - Beautiful numbers(数位DP,离散化)

    链接: https://vjudge.net/problem/CodeForces-55D 题意: Volodya is an odd boy and his taste is strange as ...

  6. linux ps命令查看最消耗CPU、内存的进程

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

  7. 怎么通过django模板输出双花括号{{}}

    https://segmentfault.com/q/1010000000685399

  8. Pytest权威教程14-缓存:使用跨执行状态

    目录 缓存:使用跨执行状态 使用方法 首先只重新运行故障或故障 上次运行中没有测试失败时的行为 新的config.cache对象 检查缓存内容 清除缓存内容 逐步修复失败用例 unittest.Tes ...

  9. Pytest权威教程22-优质集成实践

    目录 优质集成实践 使用pip安装包 Python测试发现的约定 选择测试布局结构/导入规则 在应用程序代码外测试 测试作为应用程序代码的一部分 tox 返回: Pytest权威教程 优质集成实践 使 ...

  10. BAT 按文件修改日期自动建立日期文件夹并移动

    @ECHO OFF&setlocal enabledelayedexpansion@rem 第二行的路径可以改成源目录路径,然后将BAT放源目录外执行.否则这个BAT文件也会被分类.@rem ...