Linux中的declare/typeset命令功能简介

1.功能简介
declare(别名 typeset)属 shell 内建命令,用于申明 shell 变量并设置变量属性,或查看已定义的 shell 变量和函数。若不加上任何参数,只执行 declare/typeset 则会显示全部的 shell 变量与函数(与执行 set 指令的效果相同)。
2.命令格式
declare [-aaffgilrtux] [-p] [name[=value] 。..] typeset [-aaffgilrtux] [-p] [name[=value] 。..]
3.选项说明
-a:申明数组变量 -a:申明关联数组,可以使用字符串作为数组索引 -f:仅显示已定义的函数 -f:不显示函数定义 -g:指定变量为全局变量,即使在函数内定义变量 -i:声明整型变量 -l:将变量值的小写字母变为小写 -r:设置只读属性 -t:设置变量跟踪属性,用于跟踪函数进行调试,对于变量没有特殊意义 -u:变量值的大写字母变为大写 -x:将指定的shell变量换成环境变量 -p:显示变量定义的方式和值 +:取消变量属性,但是 +a 和 +r 无效,无法删除数组和只读属性,可以使用unset删除数组,但是 unset 不能删除只读变量
4.示例
(1)定义关联数组并访问。
declare -a assarray=([lucy]=beijing [yoona]=shanghai) #读取关联数组全部内容 echo ${assarray[*]} #或 echo ${assarray[@]} #输出 beijing shanghai #读取指定索引的数组值 echo ${assarray[lucy]} #输出: beijing #列出数组索引列表 echo ${!assarray[*]} #或 echo ${!assarray[@]} #输出 yoona lucy
(2)定义只读变量。
declare -r name1=“lvlv1” #或 typeset -r name2=“lvlv2” #或 readonly name3=“lvlv3”
shell 规定,只读变量生命周期与当前 shell 脚本进程相同,且不能消除只读属性和删除只读变量,除非 kill 当前 shell 脚本进程。
(3)使用-p选项显示变量 name1 和 name2 的定义方式和当前值。
declare -p name1 name2 #输出 declare -r name1=“lvlv1” declare -r name2=“lvlv2”
(4)使用-x选项将shell变量转换为临时环境变量,供当前shell会话的其他shell进程使用,退出当前shell会话则失效。
declare -x name1;
(5)显示所有 shell 环境变量。
declare -x
(6)使用+x选项取消变量为环境变量。
delcare +x name1
(7)申明整型变量,赋值浮点型数值将报错。
declare -i integer=666
原文标题:每天一个 linux 命令(128):declare/typeset 命令
文章出处:【微信公众号:linux爱好者】欢迎添加关注!文章转载请注明出处。


智慧家庭市场持续加温 各大巨头纷纷出手
腾讯云物联网开发平台:多行业实际场景实践,万物智联近在眼前
纳米技术的危害_纳米技术的意义
鸿蒙系统p20能用吗
TDK推紧凑型CeraLink®电容器 Microchip推调试和编程开发工具
Linux中的declare/typeset命令功能简介
5G的短板是什么,它将面临着什么问题
红米 Note 4X评测:性能强大、漂亮、时尚、与众不同
浙江联想电脑维修网点及联系电话
动力电池热失控的原因是什么?动力电池4类热失控原因详细分析
tenda ac6路由器为例讲解硬件安全分析流程
One Hyper是摩托罗拉中端One系列中的最新款手机
基于YoloV3对卫星图像进行储油罐容积占用率的研究
安徽大学:在柔性离子型压敏传感器及电子皮肤研究方面取得新进展
海沧集成电路将进一步完善先进产业链布局 并形成超千人规模的集成电路人才高地
高压功率放大器在高校实验室的实际应用领域介绍
最新研发的装置可提高锂金属电池的性能
VR领域的四大瓶颈是什么,有哪些困难需要解决
如何选择优秀的车用功放?
印度财政部长曾因手机4G信号差爬上树打电话