【shell 指令碼】檢視*.gz 檔案的內容

楊奇龍發表於2011-03-20
#!/bin/bash
# zmore
#使用'more'來檢視gzip檔案
 NOARGS=65
 NOTFOUND=66
 NOTGZIP=67
 if [ $# -eq 0 ] # 與if [ -z "$1" ]效果相同
 #  $1是可以存在的, 可以為空, 如:  zmore "" arg2 arg3
 then
   echo "Usage: `basename $0` filename" >&2
   # 錯誤訊息輸出到stderr.
   exit $NOARGS
   # 返回65作為指令碼的退出狀態的值(錯誤碼).
 fi  
  
 filename=$1
  
 if [ ! -f "$filename" ]   # 將$filename引用起來, 這樣允許其中包含空白字元.
 then
   echo "File $filename not found!" >&2
   # 錯誤訊息輸出到stderr.
   exit $NOTFOUND
 fi  
  
 if [ ${filename##*.} != "gz" ]
 # 在變數替換中使用中括號結構.
 then
   echo "File $1 is not a gzipped file!"
   exit $NOTGZIP
 fi  
 zcat $1 | more
 # 使用過濾命令'more.'
 # 當然, 如果你願意, 也可以使用'less'.
  
  
 exit $?   # 指令碼將把管道的退出狀態作為返回值.
# 事實上, 也不一定非要加上"exit $?", 因為在任何情況下,
# 指令碼都會將最後一條命令的退出狀態作為返回值.
=====測試
root@client.example.com ~/yang # ./zmore.sh grep.data.gz
48      Dec     3BC1977 LPSX    68.00   LVX2A   138
483     Sept    5AP1996 USP     65.00   LVX2C   189
47      Oct     3ZL1998 LPSX    43.00   KVM9D   512
219     dec     2CC1999 CAD     23.00   PLV2C   68
484     nov     7PL1996 CAD     49.00   PLV2C   234
483     may     5PA1998 USP     37.00   KVM9D   644
216     sept    3ZL1998 USP     86.00   KVM9E   234

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-690016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章