0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Linux爱好者 来源:csdn 作者:恋猫大鲤鱼 2021-02-26 14:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219583
  • 命令
    +关注

    关注

    5

    文章

    759

    浏览量

    23937

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

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux系统这三个命令的完整功能和正确查看方法

    Linux 系统的日常运维,监控进程资源使用情况是最频繁的工作之一。当服务器 CPU 突然飙高、内存告警、或者业务响应变慢时,运维工程师首先要做的事情就是查看系统资源使用状况。top、ps、free 这三个命令几乎是每个运
    的头像 发表于 04-21 11:45 192次阅读

    Linux新手最常踩的10个命令坑介绍

    从事运维工作十余年,带过不少新人,发现有些命令错误几乎是每个Linux使用者都曾经遇到过的。这些错误轻则导致操作失败、浪费时间,重则引发数据丢失、服务中断、生产事故。本篇文章结合2026年
    的头像 发表于 04-09 10:11 215次阅读

    Linux新手必看!3个命令搞定所有“求助”,再也不用到处查文档

    其实根本不用慌——Linux 早就自带了 “说明书”,学会 3 个核心帮助命令,就能解决 90% 的操作疑问,比百度还快!
    的头像 发表于 02-03 15:28 855次阅读
    <b class='flag-5'>Linux</b>新手必看!3个<b class='flag-5'>命令</b>搞定所有“求助”,再也不用到处查文档

    Linux 下开发嵌入式必备命令速查表

    在嵌入式开发Linux系统几乎成为必备的开发环境。不管你是在做STM32、RaspberryPi、还是基于ARM的板子,熟练掌握Linux命令不仅能加快开发效率,还能让你在调试、交
    的头像 发表于 01-19 09:06 1032次阅读
    <b class='flag-5'>Linux</b> 下开发嵌入式必备<b class='flag-5'>命令</b>速查表

    Linux13个基本Cat命令示例

    和test1终端的文件。 # cat test test1 Hello everybody Hi world, 3、用 cat 命令创建文件 我们将创建一个名为test2带有以下命令的文件。 # cat
    发表于 12-26 06:09

    如何在Linux列出USB设备

    Linux操作系统提供了许多命令来列出系统连接的USB设备,这些命令非常有用,无论是查看已连接设备的信息,还是进行系统调试。 在本文中,我们将介绍一些常用的
    发表于 12-24 08:19

    Linux基础命令的进阶用法

    凌晨2点,正在熟睡的你被电话惊醒:"线上服务响应超时,用户大面积投诉!" 你匆忙打开电脑,SSH 登录服务器,面对满屏的进程和日志,脑子一片空白——从哪里开始排查?用什么命令?怎么快速定位问题?
    的头像 发表于 09-02 16:33 774次阅读

    测试工程师都在用的Linux命令清单(建议收藏)

    作为一名工程师,熟练掌握Linux命令是基本功的基本功。无论是日常工作的系统维护,还是面试时的技术考核,Linux
    的头像 发表于 08-08 10:06 840次阅读
    测试工程师都在用的<b class='flag-5'>Linux</b><b class='flag-5'>命令</b>清单(建议收藏)

    Linux基础命令which详解

    Linux系统,which命令用于查找并显示指定命令的可执行文件路径。这对于系统管理员和开发人员来说是一个非常有用的工具,可以帮助定位命令
    的头像 发表于 07-29 17:58 1067次阅读

    linux系统awk特殊字符命令详解

    Linux系统,awk 是一种非常强大的文本处理工具,能够对文本数据进行分析、格式化和筛选。利用其内置的特殊字符和操作符,用户可以实现复杂的数据处理任务。以下对一些常见的awk特殊字符和操作符
    的头像 发表于 07-28 16:38 751次阅读

    一文掌握Linux命令

    作为一名运维工程师,熟练掌握Linux命令是基本功的基本功。无论是日常工作的系统维护,还是面试时的技术考核,Linux
    的头像 发表于 07-22 15:23 740次阅读

    详解Linux网络管理的关键命令

    本文档概述了网络管理的关键命令,如ifconfig配置网络接口,ip管理路由,ping测试连通性,以及nmap进行安全扫描。还介绍了nslookup和dig用于域名解析,tcpdump抓包分析,以及arp操作和nmap的深入应用。
    的头像 发表于 07-04 11:37 1541次阅读
    详解<b class='flag-5'>Linux</b>网络管理<b class='flag-5'>中</b>的关键<b class='flag-5'>命令</b>

    Linux系统管理的核心概念

    在前一篇文章,我们深入探讨了Linux的文件操作命令,如cp、mv、rm,以及文本处理命令grep、wc和管道符。本文将继续深入
    的头像 发表于 05-15 17:05 833次阅读

    为什么无法在Linux SDK中找到重置端点和中止端点功能的等效命令

    你好,我有客户正在使用 Linux 开发他们的软件界面。 我们的窗口应用程序可以运行,但他们想转换到 Linux。 他们无法在 Linux SDK 中找到重置端点和中止端点功能的等效
    发表于 05-07 07:24

    Linux常用命令大全

    Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任务,如管理文件和目录、操作进程、网络通信、软
    的头像 发表于 05-03 18:08 2051次阅读