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 腳本:
通過sh -x 進行調試發(fā)現(xiàn)結果是:
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) 計算數組元素個數或者長度: (1) ${#array[@]} 了解了數組基礎語法,舉例說明,請看: #!/bin/bash 在看一個復雜一點的例子,將文件內容讀取到數組中: #!/bin/bash |
|
來自: zybingliu > 《操作系統(tǒng)》