#!/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引用起來, 這樣允許其中包含空白字元.
echo "File $filename not found!" >&2
exit $NOTFOUND
if [ ${filename##*.} != "gz" ]
# 在變量替換中使用中括号結構.
echo "File $1 is not a gzipped file!"
exit $NOTGZIP
zcat $1 | more
# 使用過濾指令'more.'
# 當然, 如果你願意, 也可以使用'less'.
exit $? # 腳本将把管道的退出狀态作為傳回值.
# 事實上, 也不一定非要加上"exit $?", 因為在任何情況下,
# 腳本都會将最後一條指令的退出狀态作為傳回值.
=====測試
[email protected] ~/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