shell编程:有类型的变量
1、通过 declare 和 typeset 命令
- declare 和 typeset 两者等价
- declare 和 typeset 都是用来定义变量类型的
- 下面以 declare 进行总结
2、declare 参数如下
- -r 将变量设置为只读
- -i 将变量设置为整数
- -a 将变量设置为数组
- -F 显示此脚本前定义过的所有函数及内容
- -f 仅显示此脚本前定义过的函数名
- -x 将变量声明为环境变量
3、举例:
例1: 声明为不可变形式, declare -r
$ var=hello
$ var=world
$ echo $var
打印出:world // 说明 var是可变的
$ declare -r var=hello
$ var=world
打印结果:-bash: var: 只读变量
例2:声明为整型, declare -i
$ num=10
$ num2=$num+20
$ echo $num2
打印出:10+20
$ expr $num + 20
打印出:30
$ num=10
$ declare -i num3
$ num3=$num+90
$ echo $num3
打印出:100
例3:显示出系统中定义的 函数名及函数体
$ declare -F
例4: 显示出系统中定义的所有函数的函数名
$ declare -f
例5:声明为数组, declare -a
$ declare -a array // 声明一个数组
$ array=("jones" "mike" "kobe" "jordan") // 赋值
输出数组内容:
$ echo ${array[@]} // 输出全部内容,打印出:jones mike kobe jordan
$ echo ${array[0]} // 输出数组元素下标为0的值,打印出:jones
获取数组长度:
$ echo ${#array[@]} // 输出数组长度,打印出:4
$ echo ${#array[0]} // 输出数组第0个元素的长度,打印出:5
给数组某个下标赋值:
$ array[0]=lisi
$ echo ${array[@]} // 输出:lisi mike kobe jordan
给数组尾部添加一个元素:
$ array[10]=zhangsan // 下标必须大于数组长度 - 1,可以大很多
删除元素:
$ unset array[2] // 删除数组的第三个元素
$ unset array // 清空整个数组
分片访问:
$ echo ${array[@]:1:3} // 从下标为 1 的位置开始,向后取 3个元素,忽略中间的空元素,直到取够 3个元素。如果元素不足3个,则输出后面的所有元素即可。
内容替换:
$ array2=${array[@]/ke/KE} // 将数组中所有 ke 替换为 KE。
$ echo ${array2[@]}
数组遍历:
for v in ${array[@]}
do
echo $v
done
例6: 声明为环境变量 declare -x
$ declare -x num // num 成为环境变量后,就可以在脚本中直接使用。 如果不是环境变量,则只能在这个终端里面使用。
4、取消声明的变量
declare +r
declare +i
declare +a
declare +x
总结:向数组array [0,1,2,3,4]末尾添加元素,如果数组长度为5,添加新元素 7的时候下标指向的是 7,那么数组为 [0,1,2,3,4, , ,7],这时候数组长度为6,此时 array[5] 和 array[6] 值为空,array[7] 的值为7。
shell编程:有类型的变量的更多相关文章
- 小鸟初学Shell编程(七)变量引用及作用范围
变量引用 那么定义好变量,如何打印变量的值呢?举例下变量引用的方式. ${变量名}称作为对变量的引用 echo ${变量名}查看变量的值 ${变量名}在部分情况下可以省略成 $变量名 [root@li ...
- 小鸟初学Shell编程(六)变量赋值
变量的意义 我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量临时存储,以备我们下一条命令或脚本使用. 变量的定义 变量的定义建议用一个有意义的英文单词来代表变量,不要使 ...
- shell编程基本语法和变量
一.编写shell脚本基本格式 拿最简单的hello word举例 .#!/bin/bash echo 'hello world' .#!/bin/bash:告诉计算机,使用bash解释器来执行代码 ...
- Linux Shell编程(8)——变量详解
不同与许多其他的编程语言,Bash不以"类型"来区分变量.本质上来说,Bash变量是字符串,但是根据环境的不同,Bash允许变量有整数计算和比较.其中的决定因素是变量的值是不是只含 ...
- Linux Shell编程(6)——变量替换
变量的名字是它的值保存的地方.引用它的值称为变量替换.$让我们仔细地区别变量和变量的值.如果variable1是一个变量的名字,那么$variable1就是引用这个变量的值――即这个变量它包含的数据. ...
- Linux Shell编程(7)——变量赋值
=赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试.注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符.例子:简单的变量赋值 #!/b ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- Linux学习——shell编程之变量
shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...
- Shell 编程基础之变量和环境变量
一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...
- Linux Shell编程变量赋值和引用
我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用“! ...
随机推荐
- RSTP生成树
一.实验目的 二.实验拓扑图 三.实验编址 四.实验步骤 1.基本步骤 配置PC机IP 配置完成,开启所有设备,测试主机之间连通性 2.配置RSTP基本功能 在四台交换机上修改生成树模式:配置完成后, ...
- 转载:LESS基本用法
转载出处:https://blog.csdn.net/qq_38209578/article/details/80566860 转载出处:https://blog.csdn.net/weixin_44 ...
- Python3调用hessian
领导派了个任务,实现服务器日志文件调用hessian接口保存到数据库 研究了半天python调用hessian的办法 首先使用hessian for python的链接: http://hessian ...
- 好用的打包工具webpack
<什么是webpack> webpack是一个模块打包器,任何静态资源(js.css.图片等)都可以视作模块,然后模块之间也可以相互依赖,通过webpack对模块进行处理后,可以打包成我们 ...
- .Net编译环境x86,x64,anycpu的区别
一.定义 x86: 将程序集编译为由兼容 x86 的 32 位公共语言运行库运行. x64: 将程序集编译为由支持 AMD64 或 EM64T 指令集的计算机上的 64 位公共语言运行库运行. any ...
- WPFのStyle TargetType的不同写法
一.隐式写法 <Style TargetType="TextBlock"> <Setter Property="/> </Style> ...
- 【转】CentOS 7.3 从下载到安装
CentOS 7.3 从下载到安装 https://blog.csdn.net/sxy2475/article/details/75194142 [百度知道]图解CentOS 7.3安装步骤 ht ...
- Winsock编程原理——面向连接
Winsock编程原理——面向连接 Windows Sockets使用套接字进行编程,套接字编程是面向客户端/服务器模型而设计的,因此系统中需要客户端和服务器两个不同类型的进程,根据连接类型的不同,对 ...
- Linux系统分辨率设置
linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...
- webshell yar
webshell D盾 http://www.d99net.net/