shell 之 declare

『忘了再学』Shell基础 — 19、使用declare命令声明变量类型 🚀 优质资源分享 🚀 学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 目录* 1、declare命令介绍 2、声明数组变量类型 3、声明变量为环境变量 4、声明只读属性 5、补充: 1、declare命令介绍 Shell中所有变量的默 阅读详情

本文链接:http://codingstandards.iteye.com/blog/1150109   (转载请注明出处)

 

用途说明

declare命令是bash的一个内建命令,它可以用来声明shell变量,设置变量的属性(Declare variables and/or give them attributes)。该命令也可以写作typeset。虽然人们很少使用这个命令,如果知道了它的一些用法,就会发现这个命令还是挺有用的。

 

常用参数

格式:declare

格式:typeset

格式:declare -p

格式:typeset -p

显示所有变量的值。

 

格式:declare -p var

格式:typeset -p var

显示指定变量var的值。

 

格式:declare var=value

格式:typeset var=value

格式:var=value

声明变量并赋值。

 

格式:declare -i var

格式:typeset -i var

将变量var定义成整数。在之后就可以直接对表达式求值,结果只能是整数。如果求值失败或者不是整数,就设置为0。

 

格式:declare -r var

格式:typeset -r var

格式:readonly var

将变量var声明为只读变量。只读变量不允许修改,也不允许删除。

 

格式:declare -a var

格式:typeset -a var

将变量var声明为数组变量。但这没有必要。所有变量都不必显式定义就可以用作数组。事实上,在某种意义上,似乎所有变量都是数组,而且赋值给没有下标的变量与赋值给"[0]"相同。

 

格式:declare -f

格式:typeset -f

显示所有自定义函数,包括名称和函数体。

 

格式:declare -F

格式:typeset -F

显示所有自定义函数名称。

 

格式:declare -f func

格式:typeset -f func

只显示指定函数func的函数定义。

 

格式:declare -x var

格式:typeset -x var

格式:export var

将变量var设置成环境变量,这样在随后的脚本和程序中可以使用。

 

格式:declare -x var=value

格式:typeset -x var=value

格式:export var=value

将变量var设置陈环境变量,并赋值为value。

 

使用示例

示例一 declare是内建命令

[root@web ~]# type -a declare 
declare is a shell builtin
[root@web ~]#

[root@jfht ~]# type -a typeset 
typeset is a shell builtin
[root@jfht ~]#

 

示例二 declare -i之后可以直接对表达式求值

[root@web ~]# x=6/3 
[root@web ~]# echo $x 
6/3
[root@web ~]# declare -i x 
[root@web ~]# echo $x     
6/3
[root@web ~]# x=6/3 
[root@web ~]# echo $x 
2

如果变量被声明成整数,可以把表达式直接赋值给它,bash会对它求值。

[root@jfht ~]# x=error 
[root@jfht ~]# echo $x 
0

如果变量被声明成整数,把一个结果不是整数的表达式赋值给它时,就会变成0.

[root@jfht ~]# x=3.14 
-bash: 3.14: syntax error: invalid arithmetic operator (error token is ".14")
如果变量被声明成整数,把一个小数(浮点数)赋值给它时,也是不行的。因为bash并不内置对浮点数的支持。 
[root@web ~]#

[root@jfht ~]# declare +i x

此命令的结果是取消变量x的整数类型属性。 
[root@jfht ~]# x=6/3 
[root@jfht ~]# echo $x 
6/3

因为变量x不是整型变量,所以不会自动对表达式求值。可以采用下面两个方式。

[root@jfht ~]# x=$[6/3] 
[root@jfht ~]# echo $x 
2
[root@jfht ~]# x=$((6/3)) 
[root@jfht ~]# echo $x   
2
[root@jfht ~]#

 

示例三 声明只读变量

[root@jfht ~]# declare -r r 
[root@jfht ~]# echo $r 

[root@jfht ~]# r=xxx 
-bash: r: readonly variable
[root@jfht ~]# declare -r r=xxx 
-bash: declare: r: readonly variable
[root@jfht ~]# declare +r r    
-bash: declare: r: readonly variable
[root@jfht ~]# 
[root@jfht ~]# declare +r r 
-bash: declare: r: readonly variable
[root@jfht ~]# 
[root@jfht ~]# unset r 
-bash: unset: r: cannot unset: readonly variable
[root@jfht ~]#

 

示例四 声明数组变量(实际上,任何变量都可以当做数组来操作)

[root@jfht ~]# declare -a names 
[root@jfht ~]# names=Jack 
[root@jfht ~]# echo ${names[0]} 
Jack
[root@jfht ~]# names[1]=Bone 
[root@jfht ~]# echo ${names[1]} 
Bone
[root@jfht ~]# echo ${names} 
Jack
[root@jfht ~]# echo ${names[*]} 
Jack Bone
[root@jfht ~]# echo ${#names} 
4

直接引用names,相当于引用names[0] 
[root@jfht ~]# echo ${#names[*]} 
2

[root@jfht ~]# echo ${names[@]} 
Jack Bone
[root@jfht ~]# echo ${#names[@]} 
2

[root@jfht ~]# declare -p names    
declare -a names='([0]="Jack" [1]="Bone")'
[root@jfht ~]#

 

示例五 显示函数定义

[root@jfht ~]# declare -F 
declare -f add_jar
declare -f add_jar2
declare -f add_jar3
[root@jfht ~]# declare -f 
add_jar () 
{ 
    [ -e $1 ] && CLASSPATH=$CLASSPATH:$1
}
add_jar2 () 
{ 
    if [ -e $1 ]; then
        CLASSPATH=$CLASSPATH:$1;
    else
        if [ -e $2 ]; then
            CLASSPATH=$CLASSPATH:$2;
        fi;
    fi
}
add_jar3 () 
{ 
    if [ -e $1 ]; then
        CLASSPATH=$CLASSPATH:$1;
    else
        if [ -e $2 ]; then
            CLASSPATH=$CLASSPATH:$2;
        else
            if [ -e $3 ]; then
                CLASSPATH=$CLASSPATH:$3;
            fi;
        fi;
    fi
}
[root@jfht ~]# declare -f add_jar 
add_jar () 
{ 
    [ -e $1 ] && CLASSPATH=$CLASSPATH:$1
}
[root@jfht ~]# declare -F add_jar 
add_jar
[root@jfht ~]# declare -F add_ 
[root@jfht ~]# declare -F add_* 
[root@jfht ~]# declare -F 'add_*' 
[root@jfht ~]#

Linux declare 命令详解:用于在 shell 脚本中声明变量并设置变量属性的命令 declare是一个用于在 shell 脚本中声明变量并设置变量属性的命令。它可以用于在 bash 中创建具有特定特性的变量,比如只读变量、数组变量、浮动类型等。declare命令是 bash 内建命令,通常用于增加脚本的可读性和健壮性。通过declare,可以更精确地控制变量的类型和行为。declare允许对变量进行多种设置,例如设置变量为只读、设置为数组、控制浮点数等。其语法较为简单,但能有效提高脚本的可维护性。declare命令是 bash 中用于声明和设置变量属性的命令。 阅读详情

相关推荐

11.declare 命令详解及5种类型用法示例

如果我们需要进行数值运算,可以采用以下三种方法中的任意一种:使用declare声明变量类型:既然所有变量的默认类型是字符串型,那么只要我们把变 量声明为整数型就可以进行运算了。使用declare命令就可以实现声明变量的类型。我们可以用declare命令把变量声明为环境变量,和export命令的作用是一样的。变量和数组都是用来保存数据的,只是变量只能赋予一个数据值,一旦重复赋值,后一个值就会覆盖前一个值。而数组可以赋予一组相同类型的数据值。

小鹏linux的博客 1万+

我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)...

我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令) 本文链接:http://codingstandards.iteye.com/blog/1150109   (转载请注明出处)   用途说明 declare命令是bash的一个内建命令,它可以用来声明shell变量,设置变量的属性(Declare variables and/or ...

巨人站在肩膀上 1002

『现学现忘』Shell基础 — 17、使用declare声明变量类型

文章目录1、`declare`命令介绍2、数组变量类型3、环境变量4、只读属性5、补充: 1、declare命令介绍 Shell中所有变量的默认类型是字符串类型,如果你需要进行特殊数据类型进行运算,使用declare命令就可以实现声明变量的类型。 declare命令是一个内置命令,命令如下: [root@localhost ~]# declare [+/-] [选项] 变量名 选项: -: 给变量设定类型属性。 +: 取消变量的类型属性。 -а: 将变量声明为数组型。 -i: 将变量声明为整数型(

繁华似锦Fighting 654

【linux命令讲解大全】195.Bash 命令解析:declare 的用法和功能详解

本文详细介绍了 Bash 命令 declare 的语法、用途和常见选项,以及相关的参数、返回值和异常情况。通过示例和讨论,解释了全局变量和局部变量的概念,并提供了最佳实践建议。此外,还对数组和关联数组的定义和使用进行了说明。文章还针对不同情况下声明变量的方法进行了比较,强调了每种方法的优势和适用场景。最后,对于导出属性和只读属性,以及与其他命令(如export、readonly和unset)的关系也进行了解释。通过阅读本文,读者可以全面了解 declare 命令的使用方法和功能,为编写更高效的 Bash 脚

全栈若城,专注知识分享 7855

shell之declare用法

shell高阶使用

木简熙的博客 387

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 841

Shell Script—declare

shell script declare的使用

shouhu010的博客 797

Geant4 案例分析(一): B1

本文是对Geant4 B1的案例分析,其中特定的功能不做介绍,而注重于各个文件的主要功能,以及它们组织的方式。

m0_51809467的博客 1582

shell语言declare用法

shell是弱类型语言 declare [+/-] [选项] [变量名] declare [+/-] [选项] [变量名] -:给变量设定类型属性 +:取消变量类型属性 -a :将变量声明为数组 -i :将变量声明为整数型(integer) -x: 将变量声明为环境变量 -r: 将变量变成只读类型(一旦声明为只读,不可更改,除非重启机器) -p: 将变量类型打印出来 shell中所...

bck1453925668的博客 1206

小程序强制更新避坑指南:手把手教你实现无缝升级

本文详细解析小程序强制更新的实现方法,重点介绍wx.getUpdateManager API的使用技巧,帮助开发者规避冷热启动机制下的版本管理陷阱。通过实战案例展示如何设计多级更新提示策略,确保用户无缝升级,提升小程序版本更新率。

star的博客 280

Plant Simulation 实战指南:从二次分配问题到优化布局设计

本文是一份Plant Simulation实战指南,详细讲解了如何利用该仿真软件解决工厂布局中的二次分配问题。通过从数据准备、模型搭建到集成遗传算法进行自动化优化的完整流程,帮助工程师在数字孪生环境中高效寻找最优设备布局方案,从而显著降低物流成本,提升生产效率。

i1j2k的博客 564

shell中的declare命令

declare命令有如下选项: -a 声明一个数组 -i 声明一个整型 -f 打印所有函数定义 -F 仅打印函数名字 -r 声明一个readonly变量,该变量的值无法改变,并且不能为unset -x 和export的作用类似   1) 这里需要注意的是,当使用-i选项来做算数运算的时候,等号右边的变量前面没有$符,并且等号右边的变量可以不用declare -i进行声明。...

chaoguo1234的专栏 1786

MOS管开关设计知识-(五种MOS管开关电路图方式)

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1、MOS管种类和结构 MOSFET管是FET的...

树卡花 7万+

Shell内建命令之declare

Shell内建命令之declare

荣耀之路 1123

深度学习-176-知识图谱技术之langchain与neo4j的嵌入向量Neo4jVector

使用Neo4jVector将输入的文档向量化,并创建向量索引,然后进行语义检索。

qq_20466211的博客 440

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

shell 编程 declare 命令

shell编程中declare有何作用,本文解析其用法。

air_01boy的博客 1407

simulink的电动汽车制动系统热管理仿真

本文系统研究了电动汽车制动系统热管理仿真技术。通过建立机电液多物理场耦合模型,分析了不同工况下的动态热平衡特性。提出基于MPC的动态调节和NSGA-II多目标优化算法,使电池温度波动降低60%。创新性采用石墨烯相变材料与微通道液冷复合技术,冷却系统能耗减少40%。研究构建了完整的工程验证平台,涵盖200kW电制动测试台和高精度热成像系统。展望指出,未来将结合Transformer预测和强化学习算法,进一步优化热管理策略。该研究为电动汽车制动系统热管理提供了从理论建模到工程实施的完整解决方案。

xiaoheshang_123的博客 121

shell编程中declare命令的使用

众所周知,shell变量是弱类型变量,默认情况下都是字符串型。字符串不能直接进行数学运算,如果想要进行数学运算,便可使用declare声明变量类型。 declare命令的用法: declare [+/-] [选项] 变量名 + : 取消变量类型的属性 - :给变量设定类型属性 选项类型: a : 将变量声明为数组型 i : 将变量声明为整数型 x :将变量声明为环境变量 r......

weixin_40776947的博客 9811

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

shell中declare命令

shell中declare命令 declare命令有如下选项: -a 声明一个数组 -i 声明一个整型 -f 打印所有函数定义 -F 仅打印函数名字 -r 声明一个readonly变量,该变量的值无法改变,并且不能为unset -x 和export的作用类似 #!/bin/bash func()  {     echo This is a function  } declare -f ...

zhangwlf的博客 1139

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Shell中declare -A的用法?

请教一下在shelk里这个declare -A 是的用法,-A代表什么参数?为什么执行结果不是按顺序输出的?

m0_47399316的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

shell declare命令

作用:用于声明和显示已经存在的变量或函数,当不提供参数时,显示所有的shell变量。declare于typeset功能是相同的 常见参数以及用法: declare -p 显示所有变量的值 declare var=value 声明变量并复制 declare -p var 显示指定变量var的值 declare -i var 将变量定义成为整数。在这之后就可以

十七 意林 1296

shell运算符简述+declare命令

declare命令

RKMGYS 897

07_Shell内置命令-declare

bin/bash#定义索引数组#获取数组元素#定义关联数组#获取数组元素。

Holenxr的博客 509

linux声明shell变量命令-----declare

declare declare命令用于定义shell变量,但declare定义的变量仅能在当前shell环境中起作用,切换shell环境后将无效。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项,则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。 语法 declare 【选项】 【参数】 选项 +/-:"-“可用来指定变量...

平庸 1281

【Linux】Shell( 一、declare 命令 )

目录 declare 命令详解 1)declare命令选项: 2)shell 赋值 3) let类似赋值 declare 命令详解 1)declare命令选项: -a 声明一个数组 -i 声明一个整型 -f 打印所有函数定义 -F 仅打印函数名字 -r 声明一个readonly变量,该变量的值无法改变,并且不能为unset -x 和export的作用类似 代码如下(示例): declare -a distance=("eulidean" "cosine"...

挪威的深林的博客 2945
上一篇: sed 功能参数
下一篇: 成为 vim superstar
HeyITMan
博客等级 码龄14年 5粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值