Shell的參數(shù)有哪些-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Shell的參數(shù)有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Shell的參數(shù)有哪些”這篇文章吧。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)郊區(qū)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

Shell 參數(shù)


   傳遞參數(shù):可以將外部的值傳遞到腳本的內(nèi)部函數(shù)中,提高腳本的靈活性;可以添加腳本的使用選項(xiàng),增加腳本的可定制性。

     Shell的參數(shù)有哪些

     上圖顯示了 Shell 中函數(shù)的參數(shù)傳遞:定義函數(shù) testfunc();函數(shù)輸出兩個(gè)引用參數(shù),$# 表示傳入函數(shù)的參數(shù)個(gè)數(shù),$@ 表示所有參數(shù)的內(nèi)容。

Shell的參數(shù)有哪些

     值得注意的是,如果擁有的參數(shù)多余 9 個(gè),則不能使用 $10 來引用第十個(gè)參數(shù),必須先處理或者保存第一個(gè)參數(shù)($1),然后使用 shift 命令刪除第一個(gè)參數(shù),并將剩下的參數(shù)上移一位,則 $10 就變成了 $9,以此類推,而 $# 的值將被更新以反映剩余參數(shù)的個(gè)數(shù)。實(shí)際情況中,一般使用迭代的方法完成這個(gè)約束。
     許多 UNIX 程序遵循以下原則:從標(biāo)準(zhǔn)輸入(standard input)讀入,經(jīng)過處理,從標(biāo)準(zhǔn)輸出(standard output)輸出,將異常及錯(cuò)誤報(bào)告到標(biāo)準(zhǔn)錯(cuò)誤(standard error)。這樣的程序被稱為過濾器(filter)。
    重定向符號(hào) command>filename 會(huì)將 command 的標(biāo)準(zhǔn)輸出重定向到 filename 中而不是打印在控制臺(tái),如果有同名 filename,則覆蓋它,如果沒有,則新建;command>>filename 會(huì)將 command 的標(biāo)準(zhǔn)輸出以追加的形式重定向到 filename,不會(huì)覆蓋同名文件;command<filename 將command="" 的標(biāo)準(zhǔn)輸入重定向?yàn)?"" filename;管道符號(hào)="" command1|command2="" 將="" command1="" 的標(biāo)準(zhǔn)輸出與="" command2="" 標(biāo)準(zhǔn)輸入相連。     理論上講,管道功能可以通過創(chuàng)建臨時(shí)文件,使用重定向符號(hào)實(shí)現(xiàn)。但是管道符號(hào)可以直接連接程序的輸入輸出,并且沒有程序使用個(gè)數(shù)限制,只要尚未獲得最終處理結(jié)果,就可以繼續(xù)添加管道。管道的數(shù)據(jù)共享在 Linux 內(nèi)核中是通過內(nèi)存拷貝實(shí)現(xiàn)的,相較于 CPU 的計(jì)算,數(shù)據(jù)的移動(dòng)往往更消耗時(shí)間,因此在設(shè)計(jì)管道的時(shí)候,盡量把能夠減少數(shù)據(jù)量的操作置于管道的前端,一來數(shù)據(jù)拷貝速度快,二來程序運(yùn)算量少。
    內(nèi)核(kernel)利用文件描述符(file descriptor)來訪問文件。文件描述符為非負(fù)整數(shù)。打開現(xiàn)存文件或新建文件時(shí),內(nèi)核會(huì)返回一個(gè)文件描述符。讀寫文件也需要使用文件描述符指定待讀寫的文件。
   文件描述符表:用戶區(qū)的一部分,除非通過使用文件描述符的函數(shù),否則程序無法對(duì)其進(jìn)行訪問。對(duì)進(jìn)程中每個(gè)打開的文件,它都包含一個(gè)條目。
    系統(tǒng)文件表:為系統(tǒng)中所有的進(jìn)程共享。對(duì)每個(gè)活動(dòng)的 open 都包含一個(gè)條目。每個(gè)系統(tǒng)文件表的條目都包含文件偏移量、訪問模式(讀、寫、讀寫),以及指向它的文件描述符表的條目計(jì)數(shù)。每個(gè)進(jìn)程的文件表在系統(tǒng)文件表中的區(qū)域都不重合,這樣使每個(gè)進(jìn)程都有它自己對(duì)該文件的當(dāng)前偏移量。
   內(nèi)存索引節(jié)點(diǎn)表:對(duì)系統(tǒng)中的每個(gè)活動(dòng)的文件(被某個(gè)進(jìn)程打開了),內(nèi)存中的索引節(jié)點(diǎn)表都包含一個(gè)條目。幾個(gè)系統(tǒng)文件表?xiàng)l目可能對(duì)應(yīng)于同一個(gè)內(nèi)存索引節(jié)點(diǎn)表(不同進(jìn)程打開同一文件)。
    每個(gè)進(jìn)程維護(hù)自己的文件描述符表,當(dāng)進(jìn)程調(diào)用文件描述符相關(guān)的函數(shù)或命令時(shí),會(huì)對(duì)其進(jìn)行修改操作;文件描述符表中的每一項(xiàng)指向系統(tǒng)文件表;系統(tǒng)文件表被所有進(jìn)程共享,處于內(nèi)核區(qū),與內(nèi)存中的索引節(jié)點(diǎn)表對(duì)應(yīng)。因此,進(jìn)程通過對(duì)文件描述符表的操作,訪問被內(nèi)存中的索引節(jié)點(diǎn)表控制的文件。
    標(biāo)準(zhǔn)輸入的文件描述符是 0,標(biāo)準(zhǔn)輸出的文件描述符是 1,標(biāo)準(zhǔn)錯(cuò)誤的習(xí)慣描述符是 2。1> 表示重定向標(biāo)準(zhǔn)輸出,2> 表示重定向標(biāo)準(zhǔn)錯(cuò)誤,0< 表示重定向標(biāo)準(zhǔn)輸入,&> 表示重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。文件描述符是由無符號(hào)整數(shù)表示的句柄,進(jìn)程使用它來標(biāo)識(shí)打開的文件,它與包括相關(guān)信息(如文件的打開模式、文件的位置類型、文件的初始類型等)的文件對(duì)象相關(guān)聯(lián),這些信息被稱為文件的上下文。
    特殊文件:/dev/null 非常接近于一個(gè)只寫文件,所有寫入它的內(nèi)容都會(huì)永遠(yuǎn)丟失,而且讀取它的結(jié)果是空值,一般用于重定向標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤,或者清空某個(gè)文件的內(nèi)容并且不改變文件權(quán)限。/dev/zero 會(huì)產(chǎn)生一個(gè) null 流(二進(jìn)制的 0 流,而不是 ASCII 類型),主要用來創(chuàng)建一個(gè)指定長度、并且初始化為空的文件,一般用作臨時(shí)交換文件。
    
   常見 Linux 文件類型
    普通文件:用 ls -lh 查看某個(gè)文件的屬性,第一個(gè)字符為 - 的文件。一般是用一些相關(guān)的應(yīng)用程序創(chuàng)建,用 rm 命令刪除。
    目錄:第一個(gè)字符為 d 的文件。創(chuàng)建目錄可以使用 mkdir 或 cp 命令,刪除用 rm 或 rmdir。
    字符設(shè)備或塊設(shè)備文件:第一個(gè)字符為 c 表示字符設(shè)備文件,b 表示塊設(shè)備。用 mknode 創(chuàng)建,用 rm 刪除。但是一般不自主創(chuàng)建,它們跟內(nèi)核相關(guān)聯(lián)的。
    套接口文件:第一個(gè)字符為 s 的文件。
    符號(hào)鏈接文件:第一個(gè)字符為 l 的文件。通過命令 “l(fā)n -s 源文件名 新文件名”創(chuàng)建。類似于 windows 系統(tǒng)中的快捷方式。

以上是“Shell的參數(shù)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

本文名稱:Shell的參數(shù)有哪些-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://www.muchs.cn/article20/shcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名