在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            linux shell 腳本入門

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

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

            第2部分 實例
            現(xiàn)在我們來討論編寫一個腳本的一般步驟。任何優(yōu)秀的腳本都應(yīng)該具有幫助和輸入?yún)?shù)。并且寫一個偽腳本(framework.sh),該腳本包含了大多數(shù)腳本都需要的框架結(jié)構(gòu),是一個非常不錯的主意。這時候,在寫一個新的腳本時我們只需要執(zhí)行一下copy命令:
            cp framework.sh myscript
            然后再插入自己的函數(shù)。
            讓我們再看兩個例子:
            二進(jìn)制到十進(jìn)制的轉(zhuǎn)換
            腳本 b2d 將二進(jìn)制數(shù) (比如 1101) 轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)。這也是一個用expr命令進(jìn)行數(shù)學(xué)運算的例子:
            #!/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


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



            評論


            相關(guān)推薦

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

            關(guān)閉