新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux系統(tǒng)下Shell編程

        Linux系統(tǒng)下Shell編程

        作者: 時間:2012-07-31 來源:網(wǎng)絡(luò) 收藏

        下的是用來控制下命令行,類似于Makefile。

        本文引用地址:http://www.104case.com/article/148688.htm

        示例:

        #test.sh

        #!/bin/sh //使用的文件

        Mkdir ~/teST

        Echo “mkdir successfully”

        在命令行執(zhí)行:

        chmod 777 test.sh

        ./test.sh

        命令特殊字符:

        #:注釋

        :后臺執(zhí)行

        >:把執(zhí)行結(jié)果輸入到一個指定的文件中

        >>:把執(zhí)行結(jié)果附加到一個以存在的文件后面

        .:表示當(dāng)前目錄

        ..:表示上一級目錄

        $? 最后一次執(zhí)行的命令的返回碼

        $$ 進(jìn)程自己的PID

        $! Shell進(jìn)程最近啟動的后臺進(jìn)程的PID

        $# 命令行參數(shù)的個數(shù)

        $0 腳本文件本身的名字

        $1 $2 第一個,第二個命令行參數(shù)

        “$*”將所有的命令行參數(shù)組織成一個整體,作為一個單詞

        $@ 將多個命令行參數(shù)看做是多個“單詞”

        管道和重定向:

        >:輸出重定向

        :輸入重定向

        >>:輸出重定向(文件末尾追加)

        |:管道符

        例:

        Ls –l | wc –l //ls輸出各行后,用wc統(tǒng)計行數(shù)。也就是第一個的輸出作為第二個命令的輸入

        文件查找:

        Find 文件名,用來查找文件

        Grep “字符串”,用來查找字符串

        If結(jié)構(gòu)

        格式:

        If[條件]

        Then

        命令

        Fi

        Case結(jié)構(gòu):

        Case 值 in

        模式1)

        命令1

        ;;

        ……

        *)

        命令n

        ;;

        Esac

        While結(jié)構(gòu):

        While[condition]

        Do

        Commands

        ……

        Last-command

        Done

        Until結(jié)構(gòu):

        Until[condition]

        Do

        Commands

        ……

        Last-command

        Done

        For結(jié)構(gòu):

        For變量名 in 列表

        Do

        命令

        Done

        實(shí)驗(yàn):

        編寫Shell程序,實(shí)現(xiàn)if語句的使用

        #!/bin/sh

        Data>>datalog //將時間附加到datalog文件中

        If test –r errorfile

        Then cat errorfile>>datalog //將出錯信息寫入datalog文件中

        Rm errorfile

        Else echo‘No error this hour’>>datelog

        Fi

        編寫Shell程序,實(shí)現(xiàn)Case語句的使用

        #!/bin/sh

        #filename:append.sh

        Case“$#”in //檢測命令行的個數(shù)

        1) cat >> $1;; //如果是1行,輸出地一個參數(shù)

        2) cat >> $2 $1;;

        *)echo’usage:append.sh[from] to’;;

        Esac

        編寫Shell程序,實(shí)現(xiàn)Case語句的使用

        while [ -r abc.c ] //測試abc.c文件是否存在且為可讀

        do echo 'Before sleep......' //如果上面條件為真則輸出 'Before sleep......

        sleep 5 //休眠5秒

        echo 'sleep done' //輸出sleep done

        done

        編寫Shell程序,實(shí)現(xiàn)for語句的使用

        #!/bin/sh

        #forTest

        #to test the method for

        COUNTER=0

        for FILES in *

        do

        COUNTER='expr $COUNTER + 1'

        done

        echo there are $COUNTER files in 'pwd'

        總結(jié):

        Shell下的很豐富,可以大大提高編寫應(yīng)用程序的效率和管理文件及用戶。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux相關(guān)文章:linux教程




        關(guān)鍵詞: 編程 Shell 系統(tǒng) Linux

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 新化县| 平武县| 阜平县| 依兰县| 洪洞县| 岳西县| 会理县| 历史| 海兴县| 汾西县| 新昌县| 南召县| 固镇县| 苍山县| 深圳市| 新泰市| 明水县| 呼和浩特市| 嘉兴市| 锡林郭勒盟| 尉氏县| 缙云县| 三原县| 樟树市| 商都县| 合川市| 如东县| 峨眉山市| 淮北市| 德格县| 沧州市| 扬中市| 合山市| 堆龙德庆县| 海盐县| 睢宁县| 淮南市| 涡阳县| 临海市| 玉山县| 白城市|