每天一个 Linux 命令(128):declare/typeset 命令
(给Linux爱好者加星标,提升Linux技能)
转自:恋猫大鲤鱼https://dablelv.blog.csdn.net/article/details/61203535
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
参考文献
[1] [Shell]数组与关联数组
[2] Linux指令范例速查手册.马玉军.北京:科学出版社,2008.P178-P183
给我们公号发送 命令 二字,获取“每天一个Linux命令”系列的完整目录。
- EOF -
看完本文有收获?请分享给更多人
推荐关注「Linux 爱好者」,提升Linux技能
点赞和在看就是最大的支持❤️
阅读原文 最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。