<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.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í)行的命令的返回碼

          $$ 進程自己的PID

          $! Shell進程最近啟動的后臺進程的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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();