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

shift妙用之解決shell編程中的入?yún)栴}

 更新時間:2013年08月02日 19:19:13   投稿:mdxy-dxy  
shell編程經(jīng)常會遇到參數(shù)個數(shù)不定的這種情況,這種情況怎么處理呢?shift就要閃亮登場了

shell編程經(jīng)常會遇到參數(shù)個數(shù)不定的這種情況,這種情況怎么處理呢?shift就要閃亮登場了。

$#是入?yún)⒌膫€數(shù),
$@是當(dāng)前所有的入?yún)?br />$0是腳本的名字
$1是第一個入?yún)ⅲ?2是第二個入?yún)ⅰ?。。?br />
Bash定義了$1到$9,一共9個位置變量,這就決定了我們不能無限制的用$11之類的來獲取更多的入?yún)ⅰ?br />這時候就需要用shift了,shift會將入?yún)⒂乙?,如下圖所示:




我們看一段shell代碼,加深理解:

復(fù)制代碼 代碼如下:

root@manu:~/code/shell/temp# cat test.sh
#!/bin/sh
until [ $# -eq 0 ]
do
echo "$@"
shift
done


看下輸出:

復(fù)制代碼 代碼如下:

root@manu:~/code/shell/temp# ./test.sh 10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1


現(xiàn)在,如果入?yún)⒌膫€數(shù)不定,我們?nèi)绾翁幚砣雲(yún)⒛兀?br />
復(fù)制代碼 代碼如下:

until [ -z "$1" ] # Until all parameters used up
do
store_input $1
shift
done

上面這個偽碼片段表明如何處理不定的入?yún)?,通過store_input,我們將每一個入?yún)⒈4嫦聛?,然后,我們就可以處理了?br />最后的最后,給出一個處理不定參數(shù)的例子:
復(fù)制代碼 代碼如下:

manu@manu:~/code/shell/temp$ cat sum.sh
#!/bin/sh
sum=0
until [ -z $1 ]
do
sum=`echo $sum+$1 |bc`
shift
done
echo $sum

輸出如下:
復(fù)制代碼 代碼如下:

manu@manu:~/code/shell/temp$ ./sum.sh 1 2 3 4 5 6 7 8 9 10
55


參考文章:
//m.fzitv.net/article/40259.htm

相關(guān)文章

  • linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼,主要是使用了rename,結(jié)合shell,喜歡的朋友可以參考下
    2013-01-01
  • 分享一個入門級可控多線程shell腳本代碼

    分享一個入門級可控多線程shell腳本代碼

    這篇文章主要介紹了分享一個入門級可控多線程shell腳本代碼,需要的朋友可以參考下
    2016-02-02
  • linux 環(huán)境 mysql寫入中文報錯

    linux 環(huán)境 mysql寫入中文報錯

    本篇文章主要介紹了linux 環(huán)境 mysql寫入中文報錯的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Shell中case...in分支語句的應(yīng)用

    Shell中case...in分支語句的應(yīng)用

    shell作為一種腳本編程語言,同樣包含循環(huán)、分支等其他程序控制結(jié)構(gòu),從而輕松完成更加復(fù)雜、強大的功能,本文主要介紹了Shell中case...in分支語句的應(yīng)用,感興趣的可以了解一下
    2023-08-08
  • Shell中set與shopt命令選項的含義和使用示例

    Shell中set與shopt命令選項的含義和使用示例

    這篇文章主要給大家介紹了關(guān)于Shell中set與shopt命令選項的含義與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • exit(-1)或者return(-1)shell得到的退出碼為什么是255

    exit(-1)或者return(-1)shell得到的退出碼為什么是255

    exit(-1)或者return(-1)shell得到的退出碼為是255,大家知道為什么嗎?帶著這個疑問來腳本之家學(xué)習(xí)下吧,本篇文章告訴大家答案
    2015-10-10
  • Linux 解壓縮文件到指定目錄

    Linux 解壓縮文件到指定目錄

    tar是Linux中常用的打包、壓縮、加壓縮工具,tar的參數(shù)很多,這里僅僅列舉常用的壓縮與解壓縮參數(shù),本文重點講解Linux 解壓縮文件到指定目錄,需要的朋友可以參考下
    2023-02-02
  • 使用shell腳本一鍵部署LNMP架構(gòu)的方法

    使用shell腳本一鍵部署LNMP架構(gòu)的方法

    這篇文章主要介紹了使用shell腳本一鍵部署LNMP架構(gòu)的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Linux中使用mtime查看文件的最后修改時間的操作方法

    Linux中使用mtime查看文件的最后修改時間的操作方法

    在?Linux?系統(tǒng)中,mtime?是文件的一個重要屬性,它記錄了文件的最后修改時間,了解文件的最后修改時間對于系統(tǒng)管理和數(shù)據(jù)追蹤非常重要,在本文中,我們將深入探討如何使用?mtime?查看文件的最后修改時間,需要的朋友可以參考下
    2024-05-05
  • Linux 中的Edquota命令

    Linux 中的Edquota命令

    Linux edquota命令用于編輯用戶或群組的磁盤配額。下面通過本文給大家分享Linux 中的Edquota命令,感興趣的朋友一起看看吧
    2017-10-10

最新評論

普兰店市| 忻城县| 娱乐| 昭通市| 囊谦县| 巧家县| 德江县| 墨竹工卡县| 永福县| 花垣县| 襄樊市| 蛟河市| 芷江| 云梦县| 芮城县| 吴旗县| 仲巴县| 牟定县| 肇源县| 德令哈市| 福鼎市| 德惠市| 讷河市| 承德县| 济阳县| 紫金县| 巴中市| 塔河县| 龙江县| 铜鼓县| 新郑市| 四平市| 平山县| 九寨沟县| 綦江县| 夏邑县| 桐城市| 双江| 酉阳| 蓝田县| 慈溪市|