新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Shell編程入門:Linux解釋器原理

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

作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

再看下面的mysed程序,

代碼:

#!/bin/sed -f

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

所以,有用的解釋器應(yīng)該是類似bash,perl,awk的程序,并且能對一些規(guī)定的語句有解釋功能的。下面給出一個awk程序?qū)懙慕y(tǒng)計文件行數(shù)和單詞數(shù)的腳本程序myawk。

代碼:

#!/usr/bin/awk -f

BEGIN {

sum = 0;

}

{sum += NF;}

END {

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

}設(shè)置執(zhí)行位之后,執(zhí)行如下:

代碼:

$ echo -e hinhello world>test.txt

$ ./myawk test.txt

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

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


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

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

關(guān)閉