搜索
查看: 1112|回复: 0

[分享] Linux中declare/typeset命令

[复制链接]

该用户从未签到

2586

主题

2613

帖子

0

蝴蝶豆

版主

最后登录
2021-3-16
发表于 2021-3-2 12:42:22 | 显示全部楼层 |阅读模式

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-AassArray=([lucy]=beijing[yoona]=shanghai)#读取关联数组全部内容echo${assArray[*]}#或echo${assArray[@]}#输出beijingshanghai#读取指定索引的数组值echo${assArray[lucy]}#输出:beijing#列出数组索引列表echo${!assArray[*]}#或echo${!assArray[@]}#输出yoonalucy

(2)定义只读变量。

declare-rname1=“lvlv1”#或typeset-rname2=“lvlv2”#或readonlyname3=“lvlv3”

Shell规定,只读变量生命周期与当前Shell脚本进程相同,且不能消除只读属性和删除只读变量,除非kill当前Shell脚本进程。

(3)使用-p选项显示变量name1和name2的定义方式和当前值。

declare-pname1name2#输出declare-rname1=“lvlv1”declare-rname2=“lvlv2”

(4)使用-x选项将shell变量转换为临时环境变量,供当前Shell会话的其他shell进程使用,退出当前Shell会话则失效。

declare-xname1;

(5)显示所有Shell环境变量。

declare-x

(6)使用+x选项取消变量为环境变量。

delcare+xname1

(7)申明整型变量,赋值浮点型数值将报错。

declare-iinteger=666


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 20:24 , Processed in 1.157206 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表