一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

自己寫的一段腳本,使用到的命令 --- 經常使用的

 zybingliu 2009-12-21

1. 讀取文件中的每一行進行處理:
cat $FileName | while read line ;
do
   echo $line .....其他自己處理的代碼
done

2.截取一行字符串部分內容:
  awk -F'分割符' '{print $0}'  -- $0自己按照想要截取的第幾個部分自己調整
 
3.進行排序:sort , 具體的命令介紹: http://shoufuban.net/showWeb/0/0/11641690.aspx

4.統(tǒng)計出現(xiàn)的次數: uniq -c

5. if [  ] ; then
   fi
   如果在if中有多個條件,如 在1135到1257之間,或者大于1505,可以這么寫:
    currenttime=`date +%H%M%S`
    if  [ $currenttime -gt 113500  -a  $currenttime -lt 125700 ] || [ $currenttime -gt 150500 ]   ; then
    fi

6. 暫停: sleep 秒數

7.函數:
     函數的括號中沒有參數說明,和主程序一樣,用$N來獲取第幾個參數
     函數返回值:通過最后printf來返回
     好像函數中無法輸出到屏幕(用echo)

8.參數說明:
$#:參數總數
$0                 正在被執(zhí)行命令的名字。對于shell腳本而言,這是被激活命令的路徑
$n                 該變量與腳本被激活時所帶的參數相對應。n是正整數,與參數位置相對應($1,$2...)
$*                 所有這些參數都被雙引號引住。若一個腳本接收兩個參數,$*等于$1$2
$@                 所有這些參數都分別被雙引號引住。若一個腳本接收到兩個參數,$@等價于
$1$2
$?                 前一個命令執(zhí)行后的退出狀態(tài)

$$                 當前shell的進程號。對于shell腳本,這是其正在執(zhí)行時的進程ID
$!                 前一個后臺命令的進程號


9.引用其他shell中的函數
  通過“ .(空格)shell文件名”,這樣就可以調用其它shell腳本中的函數了

10. 腳本的調試:
      腳本調試用: 執(zhí)行的時候這么執(zhí)行: sh -x 腳本
      這樣會顯示每行命令,會將每行命令結果顯示出來

11. 在if判斷條件中,變量沒有加引號,引發(fā)的問題:[: too many arguments
 腳本:
# 如果沒有啟動test,就啟動
result=`ps -ef | grep test.sh | grep -v grep `
if [ -z $result ] ; then
  echo "not find test.sh, start it"
  ./test.sh &
fi
結果運行是報 too many arguments,
通過sh -x 進行調試發(fā)現(xiàn)結果是:
++ ps -ef
++ grep test.sh
++ grep -v grep
+ result='root      5216     1  0 15:45 ?        00:00:00 /bin/bash ./test.sh'
+ '[' -z root 5216 1 0 15:45 '?' 00:00:00 /bin/bash ./test.sh ']'
a.sh: line 10: [: too many arguments

shell在執(zhí)行的時候,把變量替換成值進行運算。如果不加引號,變成了一長串shell不認識的符號,執(zhí)行出錯。
所以在這種情況下,一定要加引號,避免錯誤 (類似于以前寫宏,也是一定要加括號,不知道使用的人在哪里使用,萬一是嵌套的使用,一不小心就會錯誤)

12.case
case $marketid in
  SS|SSL2|SZ|LZ|CF|HK|KJ|CM)
    ;;
  *)
    Usage
    ;;
esac

13.bash中,只有一維數組,沒有二維數組

數組賦值方式:

  (1) array=(var1 var2 var3 ... varN)
(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)
(3) array[0]=var1
arrya[1]=var2
...
array[n]=varN

計算數組元素個數或者長度:

  (1) ${#array[@]}    
(2) ${#array[*]}

了解了數組基礎語法,舉例說明,請看:

  #!/bin/bash
NAMESERVERS=("ns1.www.net." "ns2.www.net." "ns3.www.net.")
# 得到數組長度
tLen=${#NAMESERVERS[@]}

# 循環(huán)數組
for (( i=0; i<${tLen}; i++ ));
do
echo ${NAMESERVERS[$i]}
done

在看一個復雜一點的例子,將文件內容讀取到數組中:

  #!/bin/bash

# 設置IFS將分割符 設置為 換行符(\n)
OLDIFS=$IFS
IFS=$'\n'

# 讀取文件內容到數組
fileArray=($(cat file.txt))

# restore it
IFS=$OLDIFS
tLen=${#fileArray[@]}

# 循環(huán)顯示文件內容
for (( i=0; i<${tLen}; i++ ));
do
echo "${fileArray[$i]}"
done

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本成人中文字幕一区| 激情三级在线观看视频| 日韩精品免费一区三区| 日本加勒比中文在线观看| 国产偷拍精品在线视频| 亚洲最新中文字幕在线视频 | 欧美又黑又粗大又硬又爽| 四季精品人妻av一区二区三区| 欧美一区二区黑人在线| 妻子的新妈妈中文字幕| 亚洲国产另类久久精品| 国产亚洲精品久久久优势| 国产精品白丝久久av| 久久国产精品亚州精品毛片 | 亚洲精品成人福利在线| 夫妻激情视频一区二区三区| 欧美激情中文字幕综合八区| 日韩一区中文免费视频| 中文字幕日韩欧美一区| 亚洲一区二区三区免费的视频| 有坂深雪中文字幕亚洲中文| 天海翼高清二区三区在线| 亚洲午夜av久久久精品| 日本高清视频在线播放| 国产又色又爽又黄又免费| 国产欧美日韩综合精品二区| 真实偷拍一区二区免费视频| 国产美女精品午夜福利视频| 国产精品内射婷婷一级二级| 亚洲少妇一区二区三区懂色| 日韩女优精品一区二区三区| 国产日韩久久精品一区| 日韩精品免费一区二区三区| 日韩在线免费看中文字幕| 欧美日韩高清不卡在线播放| 精品一区二区三区三级视频| 好吊妞在线免费观看视频| 小黄片大全欧美一区二区| 麻豆国产精品一区二区三区| 老外那个很粗大做起来很爽| 好东西一起分享老鸭窝|