色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

          本文引用地址:http://cafeforensic.com/article/148688.htm

          示例:

          #test.sh

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

          Mkdir ~/teST

          Echo “mkdir successfully”

          在命令行執(zhí)行:

          chmod 777 test.sh

          ./test.sh

          命令特殊字符:

          #:注釋

          :后臺(tái)執(zhí)行

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

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

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

          ..:表示上一級(jí)目錄

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

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

          $! Shell進(jìn)程最近啟動(dòng)的后臺(tái)進(jìn)程的PID

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

          $0 腳本文件本身的名字

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

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

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

          管道和重定向:

          >:輸出重定向

          :輸入重定向

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

          |:管道符

          例:

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

          文件查找:

          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 //將時(shí)間附加到datalog文件中

          If test –r errorfile

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

          Rm errorfile

          Else echo‘No error this hour’>>datelog

          Fi

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

          #!/bin/sh

          #filename:append.sh

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

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

          2) cat >> $2 $1;;

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

          Esac

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

          while [ -r abc.c ] //測(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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉