linux下shell編程中Shift的用法

來源:互聯網
上載者:User


位置參數可以用shift命令左移。比如shift 3表示原來的$4現在變成了$1,原來的$5現在變成了$2,原來的$1、$2、$3丟棄,$0不移動。不帶參數的shift命令相當於shift 1。

非常有用的Unix命令:shift。我們知道,對於位置變數或者命令參數,其個數必須是確定的,或者當shell程式不知道其個數時,可以把所有參數一起賦值變數$*。左路使用者要求Shell在不知道位置變數個數的情況下,還能逐個的把參數—處理,也就是在$1後為$2,在$2後面為$3等。在shfit命令執行前變數$1的值在shift命令執行後就不可用了。

例子一:

#!/bin/bash
until [ $# -eq 0 ]
do
        echo "The first parameter:$1 number is:$#"
        shift
done

例子二:

#!/bin/bash
if [ $# -eq 0 ]
then
        echo "Usage:a2.sh parameter"
        exit 1
fi
sum=0
until [ $# -eq 0 ]
do
        sum=`expr $sum + $1`
        shift
done
echo "sum is: $sum"

例子三:


下面以一個簡單的指令碼來說明,指令碼內容如下:

#!/bin/sh

until [ $# -eq 0 ]
do
echo "第一個參數為: $1 參數個數為: $#"
shift
done執行以上程式x_shift.sh:

[root@AY1404171530212980a0Z test]# ./test 11 22 33 44 55 66 77

結果顯示如下:
 

第一個參數為: 11 參數個數為: 7
第一個參數為: 22 參數個數為: 6
第一個參數為: 33 參數個數為: 5
第一個參數為: 44 參數個數為: 4
第一個參數為: 55 參數個數為: 3
第一個參數為: 66 參數個數為: 2
第一個參數為: 77 參數個數為: 1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.