中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        linux shell 腳本入門(mén)

        作者: 時(shí)間:2007-04-24 來(lái)源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.antipu.com.cn/article/258223.htm

        第2部分 實(shí)例
        現(xiàn)在我們來(lái)討論編寫(xiě)一個(gè)腳本的一般步驟。任何優(yōu)秀的腳本都應(yīng)該具有幫助和輸入?yún)?shù)。并且寫(xiě)一個(gè)偽腳本(framework.sh),該腳本包含了大多數(shù)腳本都需要的框架結(jié)構(gòu),是一個(gè)非常不錯(cuò)的主意。這時(shí)候,在寫(xiě)一個(gè)新的腳本時(shí)我們只需要執(zhí)行一下copy命令:
        cp framework.sh myscript
        然后再插入自己的函數(shù)。
        讓我們?cè)倏磧蓚€(gè)例子:
        二進(jìn)制到十進(jìn)制的轉(zhuǎn)換
        腳本 b2d 將二進(jìn)制數(shù) (比如 1101) 轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)。這也是一個(gè)用expr命令進(jìn)行數(shù)學(xué)運(yùn)算的例子:
        #!/bin/sh
        # vim: set sw=4 ts=4 et:
        help()
        {
        cat
        b2h -- convert binary to decimal
        USAGE: b2h [-h] binarynum
        OPTIONS: -h help text
        EXAMPLE: b2h 111010
        will return 58
        HELP
        exit 0
        }
        error()
        {
        # print an error and exit
        echo $1
        exit 1
        }
        lastchar()
        {
        # return the last character of a string in $rval
        if [ -z $1 ]; then
        # empty string
        rval=
        return
        fi
        # wc puts some space behind the output this is why we need sed:
        numofchar=`echo -n $1 | wc -c | sed s/ //g `
        # now cut out the last char
        rval=`echo -n $1 | cut -b $numofchar`
        }

        chop()
        {
        # remove the last character in string and return it in $rval
        if [ -z $1 ]; then
        # empty string
        rval=
        return
        fi
        # wc puts some space behind the output this is why we need sed:
        numofchar=`echo -n $1 | wc -c | sed s/ //g `
        if [ $numofchar = 1 ]; then
        # only one char in string
        rval=
        return
        fi
        numofcharminus1=`expr $numofchar - 1`
        # now cut all but the last char:
        rval=`echo -n $1 | cut -b 0-${numofcharminus1}`
        }
        while [ -n $1 ]; do
        case $1 in
        -h) help;shift 1;; # function help is called
        --) shift;break;; # end of options
        -*) error error: no such option $1. -h for help;;
        *) break;;
        esac
        done
        # The main program
        sum=0
        weight=1
        # one arg must be given:
        [ -z $1 ] help
        binnum=$1
        binnumorig=$1

        while [ -n $binnum ]; do
        lastchar $binnum
        if [ $rval = 1 ]; then
        sum=`expr $weight + $sum`
        fi
        # remove the last position in $binnum
        chop $binnum
        binnum=$rval
        weight=`expr $weight * 2`
        done
        echo binary $binnumorig is decimal $sum


        該腳本使用的算法是利用十進(jìn)制和二進(jìn)制數(shù)權(quán)值 (1,2,4,8,16,..),比如二進(jìn)制10可
        以這樣轉(zhuǎn)換成十進(jìn)制:
        0 * 1 + 1 * 2 = 2


        為了得到單個(gè)的二進(jìn)制數(shù)我們是用了lastchar 函數(shù)。該函數(shù)使用wc –c計(jì)算字符個(gè)數(shù),
        然后使用cut命令取出末尾一個(gè)字符。Chop函數(shù)的功能則是移除最后一個(gè)字符。



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉