shell指令碼入門

來源:互聯網
上載者:User

標籤:character   程式   option   項目   開發   shell指令碼   

1、查看當前系統誰在登入:who

2、數出當前系統的登入使用者:who | wc -l(l-->line,w-->word,c-->character)

3、小型shell指令碼開發週期:$cat > nusere      建立檔案,使用cat複製終端的輸入

                          who | wc -l        輸入程式內容

                          ^ D                Ctrl+D表示end-of-file

                          $chmod +x nusere   給此檔案添加執行的許可權

                          $./nusere          執行指令碼,輸出結果,或者/bin/sh nusere

4、#!:填寫指令碼執行路徑,shell指令碼通常第一行縮寫內容為 #! /bin/sh

5、命令與參數

    (1)cd /work ; ls -l abc

    (2)命令名稱是命令列的第一個項目,通常後面會跟著選項(option),任意額外的參數都會放在選項

       之後

    (3)選項的開頭是破折號,後面跟著一個字母,選項可有可無,有的可能需要加上,有的則可以合并

       ls -l nusere,ls -lt nusere

    (4)長選項使用

        cd abc.c

        patch --verbose --backup -p1 < /temp/abc.c    (I/O重新導向,該指令從檔案中讀取資料,

                                                        而不是從鍵盤輸入)

    (5)分號(;)用來分隔同一行裡面的多條命令;&符號標誌shell將在後台執行其前面的命令,這意味

       著shell不用等該命令執行完,就可以執行下一條命令

    (6)shell識別的三種基本命令:內建命令、shell函數、以及外部命令

        內建命令:就是shell本身所執行的命令

        shell函數:shell函數是功能健全的一系列程式碼,以shell語言寫成,可以像命令那樣引用

        外部命令:外部命令是由shell的副本所執行的命令

            a:建立一個新的進程,此進程即為shell的一個副本

            b:在新的進程裡,在PATH變數所列出的目錄中,尋找特定的命令

            c:在新的進程裡,以所找到的新程式取代執行中的shell程式並執行

            d:程式完成後,最初的shell會從終端讀取下一條命令,或者執行指令碼裡的下一條命令

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6D/80/wKiom1VlbfnicaCmAAD_ptIdjKY174.jpg" title="程式執行.jpg" alt="wKiom1VlbfnicaCmAAD_ptIdjKY174.jpg" />    (7)變數:就是為某個資訊的片段所起的名字

        a:格式是字幕或者底線開頭,後面可接任意長度的字母、底線、數字

        b:變數名稱長度不限制,變數賦值長度不限制

        c:書寫過程中不能出現空格

        d:單行可進行多次賦值:firstname=sda lastname=rew name=fjdskfjdksa

           變數值包含空格時可以使用引號:fullname="fdsa hgf kjh"

           變數二次引用不用雙引號:oldname=$fullname

    (8)簡單的echo輸出

    (9)華麗的printf輸出

        printf "the first programalwaysprints ‘%s,%s‘" HELLO WORLD

        -->the first programalwaysprints ‘HELLO,WORLD‘

    (10)基本的I/O重新導向:標準輸入、標準輸出、標準錯誤輸出

        I/O重新導向就是你通過與終端互動,或是在shell指令碼裡設定。重新安排從哪裡輸入或者輸出到

        哪裡

    (11)重新導向與管道

        a:以>改變標準輸入    program < file 將輸入改為file

        b:以>改變標準輸出    program > file 將輸出改為file

            >:重新導向符在目標檔案不存在時新加檔案,如果目標檔案已存在,則會覆蓋,原本檔案數

               據丟失

        c:以>>附加到檔案    program >> file 將標準輸出內容附加到file的結尾處

        d:管道"|",program1 | program2 將program1的標準輸出作為program2的標準輸入

            可把兩個以上的程式銜接在一起,也大大的提高了執行的速度

            eg:tr -d ‘\r‘ < dos-file.txt | sort > UNIX-file.txt 先刪除檔案中的斷行符號,在排

                                                                 序,最後輸出到檔案中

    (12)特殊檔案/dev/null與/dev/tty    46


本文出自 “tabsang成長曆程” 部落格,請務必保留此出處http://tabsang.blog.51cto.com/6647507/1655691

shell指令碼入門

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.