新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Shell編程入門:Linux解釋器原理

        Shell編程入門:Linux解釋器原理

        作者: 時間:2016-10-08 來源:網絡 收藏

        再看下面的mysed程序,

        代碼:

        #!/bin/sed -f

        s/UNIX/unix/p執行./mysed時出錯了。因為被解釋成了/bin/sed -f ./mysed,其中-f選項是表示以文件里的內容作為sed的命令輸入,但sed的命令輸入不能對#!/bin/sed -f解釋,那么程序出錯了。

        所以,有用的解釋器應該是類似bash,perl,awk的程序,并且能對一些規定的語句有解釋功能的。下面給出一個awk程序寫的統計文件行數和單詞數的腳本程序myawk。

        代碼:

        #!/usr/bin/awk -f

        BEGIN {

        sum = 0;

        }

        {sum += NF;}

        END {

        printf(file %s have %d line, %d words.n, FILENAME, NR, sum);

        }設置執行位之后,執行如下:

        代碼:

        $ echo -e hinhello world>test.txt

        $ ./myawk test.txt

        file test.txt have 2 line, 3 words這里執行./myawk被執行成“/usr/bin/awk -f ./myawk test.txt”,因為awk的命令中,以#開頭的行被認為是注釋行而忽略,awk忽略了第一行#!/usr/bin/awk -f,正確的以非#開頭行當成模式和命令的輸入并能對其解釋,所以這個程序是正確的,能被順利地執行。

        OK,關于Linux系統的解釋器的介紹就說到這了,希望大家能對解釋器的原理有更多的認識,而不是給我越說越糊涂^_^。


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 雷山县| 舞阳县| 栾城县| 尼木县| 丹巴县| 新昌县| 鄂托克前旗| 灌云县| 都匀市| 凤翔县| 祁连县| 嘉荫县| 长垣县| 南华县| 格尔木市| 正镶白旗| 孝义市| 绥芬河市| 云梦县| 桦川县| 萝北县| 大荔县| 新丰县| 柳江县| 涟源市| 邵武市| 大余县| 白朗县| 枣庄市| 元江| 桃园县| 临邑县| 金山区| 陆川县| 香河县| 乐清市| 特克斯县| 仙居县| 莱西市| 万年县| 崇阳县|