最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell命令之數(shù)組表示語法學習

 更新時間:2023年05月10日 09:13:38   作者:向陽逐夢  
這篇文章主要為大家介紹了Shell命令之數(shù)組表示語法學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

數(shù)組中可以存放多個值。Bash Shell 只支持一維數(shù)組(不支持多維數(shù)組),初始化時不需要定義數(shù)組大?。ㄅc PHP 類似)。

與大部分編程語言類似,數(shù)組元素的下標由 0 開始。

Shell 數(shù)組用括號來表示,元素用"空格"符號分割開,語法格式如下:

array_name=(value1 value2 ... valuen)

一、實例

創(chuàng)建一個簡單的數(shù)組 my_array

my_array=(A B "C" D)

我們也可以使用數(shù)字下標來定義數(shù)組:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

二、讀取數(shù)組

讀取數(shù)組元素值的一般格式是:

${array_name[index]}

以下實例通過數(shù)字索引讀取數(shù)組元素:

my_array=(A B "C" D)
echo "第一個元素為: ${my_array[0]}"
echo "第二個元素為: ${my_array[1]}"
echo "第三個元素為: ${my_array[2]}"
echo "第四個元素為: ${my_array[3]}"

執(zhí)行腳本,輸出結果如下所示:

$ chmod +x test.sh 
$ ./test.sh
第一個元素為: A
第二個元素為: B
第三個元素為: C
第四個元素為: D

三、關聯(lián)數(shù)組

Bash 支持關聯(lián)數(shù)組,可以使用任意的字符串、或者整數(shù)作為下標來訪問數(shù)組元素。

關聯(lián)數(shù)組使用 declare 命令來聲明,語法格式如下:

declare -A array_name

-A 選項就是用于聲明一個關聯(lián)數(shù)組。

關聯(lián)數(shù)組的鍵是唯一的。

以下實例我們創(chuàng)建一個關聯(lián)數(shù)組 site,并創(chuàng)建不同的鍵值:

declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")

我們也可以先聲明一個關聯(lián)數(shù)組,然后再設置鍵和值:

declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"

也可以在定義的同時賦值:

訪問關聯(lián)數(shù)組元素可以使用指定的鍵,格式如下:

array_name["index"]

以下實例我們通過鍵來訪問關聯(lián)數(shù)組的元素:

declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
echo ${site["runoob"]}

執(zhí)行腳本,輸出結果如下所示:

www.runoob.com

四、獲取數(shù)組中的所有元素

使用 @ 或 * 可以獲取數(shù)組中的所有元素,例如:

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D
echo "數(shù)組的元素為: ${my_array[*]}"
echo "數(shù)組的元素為: ${my_array[@]}"

執(zhí)行腳本,輸出結果如下所示:

$ chmod +x test.sh 
$ ./test.sh
數(shù)組的元素為: A B C D
數(shù)組的元素為: A B C D

declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
echo "數(shù)組的元素為: ${site[*]}"
echo "數(shù)組的元素為: ${site[@]}"

執(zhí)行腳本,輸出結果如下所示:

$ chmod +x test.sh 
$ ./test.sh
數(shù)組的元素為: www.google.com www.runoob.com www.taobao.com
數(shù)組的元素為: www.google.com www.runoob.com www.taobao.com

在數(shù)組前加一個感嘆號 ! 可以獲取數(shù)組的所有鍵,例如:

declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
echo "數(shù)組的鍵為: ${!site[*]}"
echo "數(shù)組的鍵為: ${!site[@]}"

執(zhí)行腳本,輸出結果如下所示:

數(shù)組的鍵為: google runoob taobao
數(shù)組的鍵為: google runoob taobao

五、獲取數(shù)組的長度

獲取數(shù)組長度的方法與獲取字符串長度的方法相同,例如:

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D
echo "數(shù)組元素個數(shù)為: ${#my_array[*]}"
echo "數(shù)組元素個數(shù)為: ${#my_array[@]}"

執(zhí)行腳本,輸出結果如下所示:

$ chmod +x test.sh 
$ ./test.sh
數(shù)組元素個數(shù)為: 4
數(shù)組元素個數(shù)為: 4

看數(shù)組的時候,覺得遍歷數(shù)組用的比較多,所以自己試著寫了寫遍歷,同時試了一下在SHELL腳本中的變量自增幾個寫法,在就新手學習的時候注意一下 [ 和 $ 之間要有空格,沒有空格運行會報錯,新手可能不太注意這一點,我開始就沒注意到~~~~

示例如下:

#!/bin/bash
my_arry=(a b "c","d" abc)
echo "-------FOR循環(huán)遍歷輸出數(shù)組--------"
for i in ${my_arry[@]};
do
  echo $i
done
echo "-------::::WHILE循環(huán)輸出 使用 let i++ 自增:::::---------"
j=0
while [ $j -lt ${#my_arry[@]} ]
do
  echo ${my_arry[$j]}
  let j++
done
echo "--------:::WHILE循環(huán)輸出 使用 let  "n++ "自增: 多了雙引號,其實不用也可以:::---------"
n=0
while [ $n -lt ${#my_arry[@]} ]
do
  echo ${my_arry[$n]}
  let "n++"
done
echo "---------::::WHILE循環(huán)輸出 使用 let m+=1 自增,這種寫法其他編程中也常用::::----------"
m=0
while [ $m -lt ${#my_arry[@]} ]
do
  echo ${my_arry[$m]}
  let m+=1
done
echo "-------::WHILE循環(huán)輸出 使用 a=$[$a+1] 自增,個人覺得這種寫法比較麻煩::::----------"
a=0
while [ $a -lt ${#my_arry[@]} ]
do
 echo ${my_arry[$a]}
 a=$[$a+1]
done

Bourne shell(原生kernel下)下不支持數(shù)組,只能通過模擬來實現(xiàn)類似數(shù)組功能。

實例 1

#!/bin/sh
#注意不是/bin/bash
echo "##############使用eval函數(shù)###############"
echo "使用參考:"
echo "http://www.runoob.com/linux/linux-comm-eval.html"
eval a1=bili
eval a2=nico
eval a3=yama
for i in 1 2 3 ; do
  eval echo "$a$i"
done

輸出結果:

##############使用eval函數(shù)###############
使用參考:
http://www.runoob.com/linux/linux-comm-eval.html
bili
nico
yama

實例 2

#!/bin/sh
#注意不是/bin/bash
echo "##########################################"
echo "指令參考:"
echo "http://www.runoob.com/linux/linux-comm-expr.html"
:<<!
根據(jù)用戶輸入的一句話來定義數(shù)組
并遍歷數(shù)組元素
!
echo "輸入字符串(以空格分開):"
read str
i=0
for word in $str; do
    i=`expr $i + 1`
    eval a$i="$word"
    eval echo "數(shù)組的第 $i 個元素為: $a$i"
done

輸出結果:

##########################################
指令參考:
http://www.runoob.com/linux/linux-comm-expr.html
輸入字符串(以空格分開):
runoob google taobao
數(shù)組的第 1 個元素為: runoob
數(shù)組的第 2 個元素為: google
數(shù)組的第 3 個元素為: taobao

字符串轉數(shù)組:

#!/bin/bash
words="aaa bbb ccc"
#字符串轉數(shù)組,空格是分隔符
array=(${words// / })
#打印數(shù)組最后一個成員
echo ${array[${#array[*]}-1]}
#打印數(shù)組長度
echo ${#array[*]}
#字符串不轉換為數(shù)組,在循環(huán)實現(xiàn)以空格為分隔符打印每個成員
for word in ${words}; do
    echo ${word}
done

運行結果:

ccc3aaabbbccc

以上就是Shell命令之數(shù)組表示語法學習的詳細內(nèi)容,更多關于Shell命令語法數(shù)組表示的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解在dotnet core實現(xiàn)類似crontab的定時任務

    詳解在dotnet core實現(xiàn)類似crontab的定時任務

    這篇文章主要介紹了在dotnet core實現(xiàn)類似crontab的定時任務,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Ansible?Ad-hoc命令執(zhí)行模塊實戰(zhàn)教程

    Ansible?Ad-hoc命令執(zhí)行模塊實戰(zhàn)教程

    Ad-hoc是Ansible下臨時執(zhí)行的一條命令,對于復雜的命令會使用playbook。Ad-hoc的執(zhí)行依賴于模塊,ansible官方提供了大量的模塊,這篇文章主要介紹了Ansible?Ad-hoc命令執(zhí)行模塊?,需要的朋友可以參考下
    2024-02-02
  • Linux chown命令使用示例

    Linux chown命令使用示例

    Linux chown命令用于設置文件所有者和文件關聯(lián)組的命令,chown 需要超級用戶 root 的權限才能執(zhí)行此命令,本文給大家分享Linux chown命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • Shell腳本對比兩個文本文件找出不同行的2個方法分享

    Shell腳本對比兩個文本文件找出不同行的2個方法分享

    這篇文章主要介紹了Shell腳本對比兩個文本文件找出不同行的2個方法分享,本文分別使用comm命令法、grep命令法實現(xiàn),需要的朋友可以參考下
    2014-12-12
  • shell腳本怎樣判斷文件是否存在

    shell腳本怎樣判斷文件是否存在

    這篇文章主要介紹了shell腳本怎樣判斷文件是否存在問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Shell腳本8種字符串截取方法總結

    Shell腳本8種字符串截取方法總結

    這篇文章主要介紹了Shell腳本8種字符串截取方法總結,每個方法給出了實例代碼和操作結果,一目了然,需要的朋友可以參考下
    2014-10-10
  • Shell腳本字符串單引號和雙引號的區(qū)別淺析

    Shell腳本字符串單引號和雙引號的區(qū)別淺析

    這篇文章主要介紹了Shell腳本字符串單引號和雙引號的區(qū)別淺析,,并羅列了一些字符串的操作方法,需要的朋友可以參考下
    2014-07-07
  • Shell 實現(xiàn)多任務并發(fā)的示例代碼

    Shell 實現(xiàn)多任務并發(fā)的示例代碼

    本文主要介紹了Shell 實現(xiàn)多任務并發(fā)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Linux Shell腳本系列教程(三):變量和環(huán)境變量

    Linux Shell腳本系列教程(三):變量和環(huán)境變量

    這篇文章主要介紹了Linux Shell腳本系列教程(三):變量和環(huán)境變量,本文講解了普通變量、獲取字符串的長度、環(huán)境變量等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • shell 字符串操作(長度,查找,替換)詳解

    shell 字符串操作(長度,查找,替換)詳解

    在做shell批處理程序時候,經(jīng)常會涉及到字符串相關操作。有很多命令語句,如:awk,sed都可以做字符串各種操作。其實shell內(nèi)置一系列操作符號,可以達到類似效果,大家知道,使用內(nèi)部操作符會省略啟動外部程序等時間,因此速度會非常的快
    2012-09-09

最新評論

张家界市| 昭通市| 通江县| 孟州市| 怀安县| 玉环县| 屏南县| 黄梅县| 安泽县| 海林市| 安溪县| 寿宁县| 郎溪县| 湖口县| 濮阳市| 樟树市| 和林格尔县| 逊克县| 乌鲁木齐市| 顺平县| 滦南县| 中山市| 靖江市| 阿图什市| 二连浩特市| 堆龙德庆县| 高安市| 额济纳旗| 凤山市| 青冈县| 集贤县| 山西省| 景洪市| 屯昌县| 大同县| 枝江市| 马尔康县| 福建省| 太保市| 屯昌县| 五家渠市|