• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Linux解釋器原理(續)

    發布: 2007-7-04 12:06 | 作者: admin | 來源:  網友評論 | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網  接8月19日的那篇轉載的<>,現在把它載完.

    仔細觀察上面的三個例子,答案開始浮出水面了。正如在開始時講到的,exec族函數的處理是把#!后面的字符串為命令,后面加上execl參數列表中指定的參數列表,這樣形成了新的程序執行。分析一下mytest.c源程序,execl把命令的結果是這樣執行的/home/kiron/testexec的內容是#!/home/kiron/showargs addargs,則#!后面的字符串"/home/kiron/showargs addargs"加上命令參數列表:"/home/kiron/testexec arg1 arg2"就形成了新的程序行:/home/kiron/showargs addargs /home/kiron/testexec arg1 arg2。對于testexec腳本,我們在shell中調用它時,shell調用了fork,exec,wait來執行它,也就是和程序 mytest.c一樣用了exec函數,首先,exec函數對#!行分析后得出此腳本的解釋器為/home/kiron/showargs,然后就形成了把命令行處理成了:“/home/kiron/showargs addargs ./testexec”。

    注意:#!行中的解釋器的路徑必須是全路徑,exec函數并不對其特殊處理,比如用PATH變量來搜索它的真實路徑,所以路徑是由程序員來保證正確的。

    二、我的腳本第一句必須得是#!/bin/bash嗎?
    當然不必了,通過上面的解釋,其實第一句的#!是對腳本的解釋器程序路徑,腳本的內容是由解釋器解釋的,我們可以用各種各樣的解釋器來寫對應的腳本,比如說/bin/csh腳本,/bin/perl腳本,/bin/awk腳本,/bin/sed腳本,甚至/bin/echo等等。那我們真的能寫一個 /bin/echo的腳本文件嗎?我們來試試,下面是一個例子:

    代碼:

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>