在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Shell編程:Linux系統(tǒng)環(huán)境程序設(shè)計(jì)之路

            Shell編程:Linux系統(tǒng)環(huán)境程序設(shè)計(jì)之路

            作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

            別的高級(jí)語言都有函數(shù)的感念,當(dāng)然shell編程也有這個(gè)概念,當(dāng)寫一個(gè)比較大型的shell程序的時(shí)候,如果沒有函數(shù),則會(huì)到處都是重復(fù)的代碼。當(dāng)然也可以調(diào)用別的腳本,但是速度會(huì)比較慢。所以函數(shù)是必不可少并且非常重要的一個(gè)東西。

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

            定義函數(shù)的格式

            function_name(){...}

            例子:

            //~ fun_s

            show(){

            echo show $*

            }

            echo $*

            echo after function

            show c d

            echo $*

            exit 0

            /////////////////////////////

            $./fun_s a b

            結(jié)果是

            a b

            after function

            c d

            a b

            從上面的例子可以看出,當(dāng)腳本調(diào)用函數(shù)的時(shí)候,腳本程序的位置參數(shù)會(huì)被替換成函數(shù)的位置參數(shù),并且函數(shù)調(diào)用結(jié)束后還原。

            return:

            //~ return_s

            #!/bin/bash

            first(){

            echo is return

            }

            second(){

            echo before return

            return 0

            echo after return

            }

            return_value=$(first)

            echo $return_value

            secondecho return 0  echo return other

            exit 0

            //////////////////////////////////////

            輸出

            is return

            before return

            return 0

            該例子說明可以捕獲函數(shù)內(nèi)echo的字符串,如echo $(first) , 函數(shù)在return后不會(huì)再執(zhí)行下面的語句。

            secondecho return 0  echo return other 該句的輸出為 return 0。這里有人可能會(huì)和C語言混淆,因?yàn)樵贑語言里0表示的是false。而這里的0表示函數(shù)執(zhí)行成功,可以理解為true,所以會(huì)輸出return 0。

            命令

            break,continue 和c語言基本類似

            echo 了解一點(diǎn)即可echo -n 輸出沒有換行。

            eval:

            例子:

            //~ eval_s

            #!/bin/bash

            var1=abcd

            var2=var1

            eval var3=$$var2

            echo $var3

            exit 0

            ///////////////////////////

            eval相當(dāng)于一個(gè)額外的$,它給出一個(gè)變量值的值,如例子里先是$var2使var3變成$var1,又var1=abcd,所以var3變?yōu)閍bcd,連續(xù)解析了兩次變量。

            export:

            看下面兩個(gè)例子可以很好的說明export的作用。

            //~ export1_s

            #!/bin/bash

            var1=this is var1

            var2=this is var2

            export var2

            ./export2_s

            exit 0

            ///////////////////////////

            //~ export2_s

            #!/bin/bash

            echo $var1

            echo $var2

            exit 0

            /////////////////////////

            輸出:

            this is var2

            輸出結(jié)果說明var1為空而var2卻有值,這正是export起的作用,把var2變成了一個(gè)環(huán)境變量。

            再看個(gè)例子:

            #!/bin/bash

            echo $var1

            echo $var2

            echo $var3

            exit 0

            //////////////////////////

            //~ set-a_s

            #!/bin/bash

            set -a

            var1=var1

            var2=var2

            var3=var3

            ./set-a2_s

            exit 0

            //////////////////////////

            //~ set-a2_s

            輸出:

            var1

            var2

            var3

            set -a的作用就是把它之后聲明的所有變量都export

            printf:

            和C語言里的printf用法很相似的一個(gè)命令,使用非常方便。

            set:

            //~ set_s

            #!/bin/bash

            fun1()

            {

            echo a b c d

            }

            set $(fun1)

            echo $1

            echo $(date)

            set $(date)

            echo $1

            exit 0

            ///////////////////////

            輸出: a 2008年 03月 06日 星期四 03:57:55 CST 2008年

            date的輸出是幾個(gè)由空格分隔的值,set的作用能分隔出每個(gè)域。

            shift:

            就是讓$2變$1,$3變$2,依此類推。

            trap:

            非常有用的一個(gè)命令,用于指定接受到信號(hào)后進(jìn)行的動(dòng)作,系統(tǒng)定義了非常多的信號(hào)類型,用trap -l命令可以查看所有的信號(hào)。

            常見的幾個(gè)信號(hào)有:

            INT(2) 中斷,按下ctrl+c組合鍵引發(fā)的

            QUIT(3) 退出,按下ctrl+引發(fā)

            例子:

            //~ trap_s

            #!/bin/bash

            trap var=2 INT

            echo please enter ctrl+c

            var=1

            while [ $var = 1 ]

            do

            echo in while

            sleep 1

            done

            exit 0

            /////////////////////////

            這個(gè)例子在我按下ctrl+c后改變了var的值,所以跳出循環(huán),程序結(jié)束。

            shell下的程序設(shè)計(jì)非常強(qiáng)大,你可以用它做出很多小工具,讓你的使用linux系統(tǒng)更加流暢。shell還有非常多的功能文中沒有提到,需要大家發(fā)現(xiàn)問題后再自己去解決。



            關(guān)鍵詞:

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉