linux 数组 set,每天一个 Linux 命令(128):declare/typeset 命令

原标题:每天一个 Linux 命令(128):declare/typeset 命令

1.功能简介

declare(别名 typeset)属 Shell 内建命令,用于申明 Shell 变量并设置变量属性,或查看已定义的 Shell 变量和函数。若不加上任何参数,只执行 declare/typeset 则会显示全部的 Shell 变量与函数(与执行 set 指令的效果相同)。

declare[-aAfFgilrtux] [-p] [name[=value] ...]

typeset[-aAfFgilrtux] [-p] [name[=value] ...]

-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"

#或

readonlyname3= "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 返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值