新聞中心

        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

        實驗:

        編寫Shell程序,實現(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程序,實現(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程序,實現(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程序,實現(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)閉
        主站蜘蛛池模板: 南投县| 若羌县| 皮山县| 梅州市| 东海县| 靖远县| 赫章县| 通化市| 阳新县| 报价| 长白| 阿合奇县| 西青区| 罗定市| 浦北县| 唐河县| 富锦市| 通州区| 吉木乃县| 屏边| 榕江县| 巩义市| 株洲市| 桐城市| 安图县| 马关县| 绥芬河市| 和硕县| 松滋市| 神木县| 新乡市| 安康市| 望江县| 潜江市| 普安县| SHOW| 南宫市| 武邑县| 壶关县| 务川| 寻甸|