我的shell编程(三)-有类型变量

有类型变量

  • 我们 都知道在我们强类型编程语言中 ,我们在定义一个变量的时候,必须为这个变量定义类型。 比如说,我们要定义一个变量为整形,那我们可以把它定义为int型 ,或者说,定义一个变量为 字符串型,那我们可以把它定义为 string型。若果我们想把一个变量定义为一个日期类型,那我们必须把它定义为date类型。

也就是说我们在引用变量之前,必须先定义变量类型

  • 这里由于我们shell 编程是一种弱类型编程语言,所以,在引用前,并不需要特意去定义变量类型 。其实,shell本身也是支持提前声明变量类型的,和强类型的编程语言的方式不同,通过declare 和typeset命令去声明

​ declare命令参数表

参数 含义
-r 将变量设置为只读
-i 将变量设置为整数
-a 将变量定义为数组
-f 显示此脚本前定义过的所有函数及内容
-F 仅显示此脚本前定义过的函数名
-x 将变量声明环境变量

例子:

  • var1 是可以修改的变量
[root@localhost ~]# var1="hello world"
[root@localhost ~]# echo $var1
hello world
[root@localhost ~]# var1="hello"
[root@localhost ~]# echo $var1
hello
[root@localhost ~]# 

  • 将变量var1 设置只读
[root@localhost ~]# declare -r var1   //将var1 设置只读
[root@localhost ~]# var1="hello python"
-bash: var1: readonly variable
[root@localhost ~]# 

  • declare -r #声明变量为整数型

    [root@localhost ~]# num1=10
    [root@localhost ~]# num2=$num1+20
    [root@localhost ~]# echo $num2
    10+20
    [root@localhost ~]# expr $num1 + 10 
    20
    [root@localhost ~]# declare -i num3
    [root@localhost ~]# num3=$num1+90
    [root@localhost ~]# echo $\num3
    $num3
    [root@localhost ~]#
    
  • 定义数组 declare -a

[root@localhost ~]# declare -a array
[root@localhost ~]# array=("jones" "mike" "kobe" "jordan")
[root@localhost ~]# echo $array
jones
[root@localhost ~]# echo ${array[@]}
jones mike kobe jordan
[root@localhost ~]# echo ${array[0]}
jones
[root@localhost ~]# echo ${array[1]}
mike
[root@localhost ~]# echo ${#array[@]}
4
[root@localhost ~]# 
  • 将变量声明为环境变量 declare -x
[root@localhost ~]# vi test.sh
#!/bin/bash
#
echo "$num3"

[root@localhost ~]# sh test.sh 

[root@localhost ~]# declare -x num3  只有声明后,才可以调用
[root@localhost ~]# sh test.sh 
10
[root@localhost ~]# 

取消声明的命令

declare +r
declare +i
declare +a
declare +X
发布了60 篇原创文章 · 获赞 3 · 访问量 2074

猜你喜欢

转载自blog.csdn.net/weixin_42313749/article/details/103109957