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

Shell動態(tài)生成數(shù)組的多種方法

 更新時間:2015年07月09日 09:10:32   投稿:junjie  
這篇文章主要介紹了Shell動態(tài)生成數(shù)組的多種方法,本文給出while循環(huán)法和for循環(huán)法,以及使用seq生成數(shù)組法,需要的朋友可以參考下

如果對linux shell 數(shù)組不是很熟悉的話,請看上一篇文章:linux shell 數(shù)組建立及使用技巧  ,這篇文章主要講是動態(tài)生成數(shù)組系列。方法應(yīng)該很多,我這里主要以一個求和計算的題目為例進(jìn)行分析。

 

題目:請用linux shell 寫一段腳本,實現(xiàn)從1..1000中所有偶數(shù)的和值。

 

方法一:

通過while 循環(huán)得到需要的結(jié)果:

start=1;

total=0;

while [ $start -le 1000 ];do

  [[ $(($start%2)) == 0 ]]&&total=$(($total+$start));

  start=$(($start+1));

done;

echo $total;

 

[chengmo@centos5 ~]$ start=1;total=0;while [ $start -le 1000 ];do  [[ $(($start%2)) == 0 ]]&&total=$(($total+$start));  start=$(($start+1));done;echo $total;
250500

以上運行結(jié)果是:249500,在linux shell 中,”;”作為命令行分隔符。如果大家對于$(()) 運算符號不是很理解,可以查看:linux shell 實現(xiàn) 四則運算(整數(shù)及浮點) 簡單方法  ,如果對于:[[]] [] 符號,可以參考另外一篇文章linux shell 邏輯運算符、邏輯表達(dá)式詳解。


方法二:

通過 for 循環(huán)得到結(jié)果:

start=0;

total=0;

for i in $(seq $start 2 1000); do

  total=$(($total+$i));

done;

echo $total;

[chengmo@centos5 ~]$ start=0;total=0;for i in $(seq $start 2 1000); do  total=$(($total+$i));done;echo $total;    
250500

 

上面語句已經(jīng)代碼方面明顯優(yōu)于方法一,而且性能方面表現(xiàn)也很好。下面比較就可以發(fā)現(xiàn):

 

 

比較性能:

[chengmo@centos5 ~]$ time (start=0;total=0;for i in $(seq $start 2 1000); do  total=$(($total+$i));done;echo $total;)       250500

real  0m0.016s
user  0m0.012s
sys   0m0.003s
[chengmo@centos5 ~]$ time (start=1;total=0;while [ $start -le 1000 ];do  [[ $(($start%2)) == 0 ]]&&total=$(($total+$start));  start=$(($start+1));done;echo $total;) 
250500

real  0m0.073s
user  0m0.069s
sys   0m0.004s

方法一耗時 是方法二的 6倍!


seq 使用:

seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST

[chengmo@centos5 ~]$ seq 1000  ‘起始默認(rèn)是 1,間隔默認(rèn)也是1

[chengmo@centos5 ~]$seq 2 1000 ‘間隔默認(rèn)是1

[chengmo@centos5 ~]$seq 1 3 10  '從1開始,到10 間隔為3 結(jié)果是:1 4 7 10

說明:默認(rèn)間隔是“空格” 如果想換成其它的可以帶參數(shù):-s

[chengmo@centos5 ~]$seq -s'#' 1 3 10

1#4#7#10

 

應(yīng)用技巧:

 
生成連續(xù)數(shù)組系列:

 

[chengmo@centos5 ~]$ a=($(seq 1 3 10))  
[chengmo@centos5 ~]$ echo ${a[1]}
4
[chengmo@centos5 ~]$ echo ${a[@]}
1 4 7 10

 
生成連續(xù)相同字符:

[chengmo@centos5 ~]$ seq -s '#' 30 | sed -e 's/[0-9]*//g'
#############################

上面例子:通過加入間隔字符‘#'后,替換掉數(shù)字, 生成連續(xù)相同字符'#',這個在以后書寫中還是有不少幫助。

相關(guān)文章

  • linux中top命令詳解

    linux中top命令詳解

    top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。本文給大家簡單介紹下linux 中的top命令,感興趣的朋友一起看看吧
    2017-10-10
  • 修改Apache配置指定php配置文件php.ini的位置方法

    修改Apache配置指定php配置文件php.ini的位置方法

    下面小編就為大家?guī)硪黄薷腁pache配置指定php配置文件php.ini的位置方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Shell腳本中引用、調(diào)用另一個腳本文件的2種方法

    Shell腳本中引用、調(diào)用另一個腳本文件的2種方法

    這篇文章主要介紹了Shell腳本中引用、調(diào)用另一個腳本文件的2種方法,本文介紹了兩種方法的語法,然后給出實際使用實例和一些要注意的地方,需要的朋友可以參考下
    2015-06-06
  • 淺談 Linux 下 file 的六種應(yīng)用實例

    淺談 Linux 下 file 的六種應(yīng)用實例

    Linux file命令用于辨識文件類型。通過file指令,我們得以辨識該文件的類型。這篇文章主要介紹了淺談 Linux 下 file 的應(yīng)用實例,需要的朋友可以參考下
    2017-11-11
  • Linux在shell中自動生成1到100的數(shù)組方法(兩種方法)

    Linux在shell中自動生成1到100的數(shù)組方法(兩種方法)

    之前自己在寫shell腳本的時候,需要自動創(chuàng)建1-100的文本確不知道該如何去創(chuàng)建。今天小編給大家分享兩種方法,需要的朋友參考下
    2017-02-02
  • linux下mysql如何自動備份shell腳本

    linux下mysql如何自動備份shell腳本

    對任何一個已經(jīng)上線的網(wǎng)站站點來說,數(shù)據(jù)備份都是必須的。無論版本更新還是服務(wù)器遷移,備份數(shù)據(jù)的重要性不言而喻。人工備份數(shù)據(jù)的方式不單耗費大量時間和精力,還灰常不專業(yè)。下面小編給大家分享linux下mysql自動備份shell腳本,需要的朋友可以參考下
    2015-09-09
  • shell編程基礎(chǔ)之認(rèn)識與學(xué)習(xí)BASH

    shell編程基礎(chǔ)之認(rèn)識與學(xué)習(xí)BASH

    本文介紹下,shell基礎(chǔ)編程中有關(guān)bash的相關(guān)知識,有需要的朋友參考學(xué)習(xí)下
    2013-11-11
  • Linux Shell腳本系列教程(七):腳本調(diào)試

    Linux Shell腳本系列教程(七):腳本調(diào)試

    這篇文章主要介紹了Linux Shell腳本系列教程(七):腳本調(diào)試,本文講解了Bash內(nèi)建調(diào)試功能和自定義調(diào)試功能等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Shell 命令執(zhí)行順序分析[圖]

    Shell 命令執(zhí)行順序分析[圖]

    Shell 從標(biāo)準(zhǔn)輸入或腳本中讀取的每一行稱為管道(pipeline);它包含了一個或多個命令(command),這些命令被一個或多個管道字符(|)隔開
    2013-01-01
  • Linux不解壓直接查看gzip壓縮日志的常用命令

    Linux不解壓直接查看gzip壓縮日志的常用命令

    在Linux服務(wù)器上,日志文件經(jīng)常會用gzip格式進(jìn)行壓縮,以節(jié)省磁盤,對于這種壓縮文件,需要解壓?然后再用cat、grep這些命令進(jìn)行查看?其實不需要,本文就給大家介紹了Linux不解壓直接查看gzip壓縮日志的常用命令,需要的朋友可以參考下
    2024-07-07

最新評論

新沂市| 雷州市| 蓬溪县| 东丰县| 桑植县| 玛沁县| 德江县| 平山县| 邳州市| 双城市| 万州区| 吉隆县| 松原市| 滨州市| 榆中县| 宁城县| 定襄县| 杭州市| 双牌县| 库车县| 什邡市| 五大连池市| 龙州县| 涿鹿县| 石嘴山市| 神池县| 南宁市| 肇源县| 新巴尔虎左旗| 宜城市| 南投县| 永川市| 财经| 开原市| 太康县| 邛崃市| 平果县| 长汀县| 封丘县| 漠河县| 太保市|