linux的declare命令

Linux declare 命令用于声明 shell 变量。

语法

declare [+/-][rxi][变量名称=设置值] 或 declare -f

参数说明

  • +/-  "-"可用来指定变量的属性,"+"则是取消变量所设的属性。
  • -f  仅显示函数。
  • r  将变量设置为只读。
  • x  指定的变量会成为环境变量,可供shell以外的程序来使用。
  • i  [设置值]可以是数值,字符串或运算式。

 实例

 查看所有的变量和函数

由于内容太多,这里选择查看前20行

[root@localhost ~]# declare | head -n 20
A=aaaa
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=102
DIRSTACK=()
EUID=0
GROUPS=()
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
声明变量

语法格式如下

#语法格式

 declare 变量名=变量值

#举例

declare b=beautiful

#获取变量值

echo $变量名

#举例

echo $b

[root@localhost ~]# declare b=beautiful
[root@localhost ~]# echo $b
beautiful
数值运算

语法格式如下

#举例

 declare  -i x=4*5 

echo $x

#刚刚声明的i变量还可以用到数值运算中

declare -i x=x*2

declare -i x=$x*2

[root@localhost ~]# declare -i x=4*5
[root@localhost ~]# echo $x
20
[root@localhost ~]# declare -i x=x*2
[root@localhost ~]# declare -i x=$x*2
[root@localhost ~]# echo $x
80
 查看变量属性

 语法格式如下

declare -p 变量名

[root@localhost ~]# declare -p b
declare -- b="beautiful"
[root@localhost ~]# declare -p x
declare -i x="80"
转换普通变量为环境变量

语法格式如下

declare -x 变量名=变量值

[root@localhost ~]# declare -x b="beautiful"
[root@localhost ~]# env|grep bea
b=beautiful

查看所有的环境变量,除了 env 命令之外,还可以使用 declare -x 命令。

声明整型变量

 语法格式如下

declare -i 变量名=变量值

[root@localhost ~]# declare -i num3=100
[root@localhost ~]# echo $num3
100
#赋予num3为字符串
[root@localhost ~]# num3="hello"
#再次获取发现为0,而不是赋予的字符串
[root@localhost ~]# echo $num3
0
取消变量的属性

 语法格式如下

declare +i 变量名 

#取消上边赋予num3的整形属性
[root@localhost ~]# declare +i num3
#再次赋值给num3字符串
[root@localhost ~]# num3="oo"
#再次获取num3的值
[root@localhost ~]# echo $num3
oo
 设置变量为只读

 语法格式如下

declare -r  变量名=变量值 

[root@localhost ~]# declare -r c="cute"
[root@localhost ~]# echo $c
cute
[root@localhost ~]# c="ccc"
-bash: c: 只读变量
[root@localhost ~]# declare +r c
-bash: declare: c: 只读变量
注:一旦给变量设定了只读属性,那么这个变量既不能修改变量的值,也不能删除变量,
更不能用 +r 选项取消只读属性。
但是, 因为这个变量只是命令行声明的,所以只要重新登录或重启,这个变量就会消失。
声明数组变量

 语法格式如下

declare -a 数组变量名='([0]="值1" [1]="值2" ... [n]="值n")' 

#声明普通数组时,下标可以省略,直接显示值
[root@localhost ~]# declare -a arr1='("1" "2" "3" "4")'
#获取数组下标为1的值
[root@localhost ~]# echo ${arr1[1]}
2
#显示整个数组
[root@localhost ~]# echo ${arr1[@]}
1 2 3 4
#声明关联数组
[root@localhost ~]# declare -A array1=(["index1"]=99 ["index2"]=98 ["index3"]=97)
[root@localhost ~]# echo ${array1[index1]}
99
[root@localhost ~]# echo ${array1[index2]}
98
[root@localhost ~]# echo ${array1[index3]}
97
#显示整个数组
[root@localhost ~]# echo ${array1[@]}
99 98 97

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值