linux中數組的定義與使用

 

 

    我們常說,程序=指令+數據,往細一點的方向說,指令具體指的有哪些?數據又有哪些?

總結一下:

指令大概包括,編程語言中的語法關鍵字(如bash編程中的關鍵字有for,while,case,if,until,continue,break),還包括系統中的命令,和一些自己編寫的函數,這些東西都可以稱為指令。

 

數據最常見的就是變量了,還有文件,還有一個非常常用的數組。

今天來給大家分享一下數組。

數組是什么?

我們都知道,變量是一段命名的內存空間,只有一個元素,而數組,簡單來說它是許多元素按一順序,連續的存儲在內存空間中的這段空間的統稱。

一個數組,它包括多個元素。

那么,數組是如何聲明的呢?

我們使用變量時,不用聲明,但使用數組時,要聲明一下,不然系統會將其當成一個包括了多個字符串的單個變量來處理。

索引數組的聲明:

declare -a     a即為array的意思

 

如:declare -a number

linux中數組的定義與使用

這樣一來,number這個就已經被聲明為一個數組了。

數組聲明好了,我們如何給數組賦值呢?

有多種方法:

1:按需要一個元素一個元素的添加

2:一次性將多個元素添加進去

3:按稀疏格式添加

4:通過交互式的“read -a” 方式

如圖:

linux中數組的定義與使用

此種方式是一次只加一個元素。

 

看看第二種方式:

linux中數組的定義與使用

第三種:按稀疏格式添加:

linux中數組的定義與使用

我們可以看到 ,添加時并不是按照0123這樣的順序來的,而是稀疏格式的。

 

第四種:通過read -a 聲明一個數組并賦值

 

linux中數組的定義與使用

 

以上是數組的賦值。

需要注意的是,數組雖然存儲多個元素,但數組字句卻只能有一個。從上面這些圖中我們也可以看出,引用數組中的某個元素是通過一種索引機制來實現的。

元素存儲在數組中,一般情況下,是按照順序編號的,當然,順序是從0開始編號。當用數組名+編號就可以唯一標識一個數組中的某個數據了。

即:

arrayNAME[#]

引用時也要注意:

${arrayNAME[#]}

重要的事情說三遍:花括號不能少!花括號不能少!花括號不能少!

示例:將剛才我們存儲于數組中的c給打印出來。

linux中數組的定義與使用

通過數組的聲明,賦值,我們可以知道,雖然數組中元素編號有不按順序賦值的,但都是按編號索引的,我們稱這類數組為索引數組。

還有一類數組,并不是按編號索引的,而是照特定的字符索引的,我們稱這類數組為關聯數組。

關聯數組的聲明:

declare  -A

既然不按編號進行賦值,那關聯數組是如何將給元素賦值,并進行引用的呢?

linux中數組的定義與使用

如上圖所示,我們通過特定的關鍵字,對關聯數組中的某個特定的值進入賦值,引用的時候,再通過數組名+關鍵字的方式引用。

好了,這些就是索引數組和關聯數組的聲明,賦值,引用。相信大家都有一個基本的了解。通過數組,我們能夠傳遞更多的數據給指令進行處理。下面例舉一個小練習,若能掌握,說明就是真的理解什么是數組了。

例:隨機生成十個數,賦值給一個數組,要求將數組內的這十個數,進行排序,然后顯示出來。

代碼: 

 linux中數組的定義與使用

代碼的執行結果: 

代碼執行了四次,得到的結果:

linux中數組的定義與使用 

當然啦,這只是我個人的做法,相信朋友們都有自己的思想與做法,只要結果正確,基本都是正確的。

希望數組的分享對大家有幫助。

原創文章,作者:old_radish,如若轉載,請注明出處:http://www.www58058.com/76801

(2)
old_radishold_radish
上一篇 2017-05-23
下一篇 2017-05-24

相關推薦

  • 第二周博客作業

    1.linux上的文件管理類命令都用哪些,其常用的使用方法及其相關示例演示。 常用命令有:cp, mv, rm 復制命令:cp cp [OPTION]… [-T] SOURCE DEST                 cp [OPTION]… SOURC…

    Linux干貨 2016-06-23
  • 文件元數據信息詳解

    文件元數據信息詳解 文件的元數據是什么? 文件的數據分為兩類:一類為數據,即文件的實際內容;另一類為元數據,用來描述文件的特征。 元數據內容: 文件名 文件大小 文件所在數據塊 數據塊的大小 文件類型 文件所在的Inode 硬鏈接次數 權限 屬主id 屬組id 最近一次訪問時間戳 最近一次更改文件內容的時間戳 最近一次更改文件元數據的時間戳 查看文件的元數據…

    Linux干貨 2017-07-09
  • Linux上文件管理命令、元素據及時間戳、bash的工作特性回顯和命令展開、定義別名,命令引用。

    文件管理命令: mkdir 創建空目錄 語法: mkdir [選項]…目錄… 選項: -P:逐層創建目錄。 -v:顯示過程。 -m:直接給定權限。 注意:路徑的基名為命令作用對象?;窂奖仨毚嬖凇?示例 創建/tmp/x1/a/a1和/tmp/x1/b rmdir 移除空目錄 語法 rmdir [選項]…目錄&#8230…

    Linux干貨 2017-12-10
  • N25-第五周作業

    第五周作業 1、顯示當前系統上root、fedora或user1用戶的默認shell; grep "^\(root|fedora|user1\)" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(); grep "…

    Linux干貨 2017-02-14
  • linux基礎命令: tr

    基礎命令:  tr   tr命令 功能:刪除和轉換字符 語法:tr  [OPTION]…. SET1  [SET2] 參數: -d : 刪除所有屬于第一字符集的字符(刪除某些特殊字符) -s : 把連續重復的字符以單獨一個字符表示(刪除空行很有用) 舉例: 1.把小寫字母轉換為大寫字母; cat &nbsp…

    Linux干貨 2016-08-03
  • 進程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 進程,資源管理  查看:pstree,ps,top,vmstat,pmap 查詢:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理軟件or命令  htop glances dstat …

    Linux干貨 2016-04-11
欧美性久久久久