国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

兩個很詳細的shell實例

2019-11-18 17:24:16
字體:
來源:轉載
供稿:網友
實例

  一般編程步驟

  現在我們來討論編寫一個腳本的一般步驟。任何優秀的腳本都應該具有幫助和輸入參數。并且寫一個偽腳本(framework.sh),該腳本包含了大多數腳本都需要的框架結構,是一個非常不錯的主意。這時候,在寫一個新的腳本時我們只需要執行一下copy命令:

cpframework.shmyscript


  然后再插入自己的函數。

  讓我們再看兩個例子:

  二進制到十進制的轉換

  腳本b2d將二進制數(比如1101)轉換為相應的十進制數。這也是一個用ex  fi
  #removethelastpositionin$binnum
  chop"$binnum"
  binnum="$rval"
  weight=`expr"$weight""*"2`
done

echo"binary$binnumorigisdecimal$sum"
#



  該腳本使用的算法是利用十進制和二進制數權值(1,2,4,8,16,..),比如二進制"10"可以這樣轉換成十進制:

0*1 1*2=2


  為了得到單個的二進制數我們是用了lastchar函數。該函數使用wc–c計算字符個數,然后使用cut命令取出末尾一個字符。Chop函數的功能則是移除最后一個字符。

  文件循環程序

  或許您是想將所有發出的郵件保存到一個文件中的人們中的一員,但是在過了幾個月以后,這個文件可能會變得很大以至于使對該文件的訪問速度變慢。下面的腳本rotatefile可以解決這個問題。這個腳本可以重命名郵件保存文件(假設為outmail)為outmail.1,而對于outmail.1就變成了outmail.2等等等等...


#!/bin/sh
#vim:setsw=4ts=4et:
ver="0.1"
help()
{
  cat<rotatefile--rotatethefilename

USAGE:rotatefile[-h]filename

OPTIONS:-hhelptext

EXAMPLE:rotatefileout
Thiswille.grenameout.2toout.3,out.1toout.2,outtoout.1
andcreateanemptyout-file

Themaxnumberis10

version$ver
HELP
  exit0
}

error()
{
  echo"$1"
  exit1
}
while[-n"$1"];do
case$1in
  -h)help;shift1;;
  --)break;;
  -*)echo"error:nosuchoption$1.-hforhelp";exit1;;
  *)break;;
esac
done

#inputcheck:
if[-z"$1"];then
error"ERROR:youmustspecifyafile,use-hforhelp"
fi
filen="$1"
#renameany.1,.2etcfile:
fornin987654321;do
  if[-f"$filen.$n"];then
    p=`expr$n 1`
    echo"mv$filen.$n$filen.$p"
    mv$filen.$n$filen.$p
  fi
done
#renametheoriginalfile:
if[-f"$filen"];then
  echo"mv$filen$filen.1"
  mv$filen$filen.1
fi
echotouch$filen
touch$filen



  這個腳本是如何工作的呢?在檢測用戶提供了一個文件名以后,我們進行一個9到1的循環。文件9被命名為10,文件8重命名為9等等。循環完成之后,我們將原始文件命名為文件1同時建立一個與原始文件同名的空文件。

調試

  最簡單的調試命令當然是使用echo命令。您可以使用echo在任何懷疑出錯的地方打印任何變量值。這也是絕大多數的shell程序員要花費80的時間來調試程序的原因。Shell程序的好處在于不需要重新編譯,插入一個echo命令也不需要多少時間。

  shell也有一個真實的調試模式。如果在腳本"strangescript"中有錯誤,您可以這樣來進行調試:

sh-xstrangescript


  這將執行該腳本并顯示所有變量的值。

  shell還有一個不需要執行腳本只是檢查語法的模式。可以這樣使用:

sh-nyour_script


  這將返回所有語法錯誤。

  我們希望您現在可以開始寫您自己的shell腳本,希望您玩得開心。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肇东市| 岑巩县| 丹巴县| 浮山县| 会理县| 五莲县| 盘山县| 瓮安县| 漠河县| 湖州市| 左贡县| 江源县| 汶上县| 怀仁县| 广德县| 松江区| 金寨县| 洪泽县| 亳州市| 靖安县| 普安县| 牡丹江市| 昌吉市| 达州市| 深圳市| 山东| 贵州省| 酉阳| 余庆县| 平遥县| 寿宁县| 弋阳县| 大冶市| 陈巴尔虎旗| 仙游县| 水城县| 澄城县| 安新县| 阳江市| 廊坊市| 禹州市|