我的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章