本文所選的例子來自於《Advanced Bash-scripting Gudie》一書,譯者 楊春敏 黃毅 腳本運行結果 ...
本文所選的例子來自於《Advanced Bash-scripting Gudie》一書,譯者 楊春敏 黃毅
1 #!/bin/bash 2 #使用more查看gzip文件 3 4 NOARGS=65 5 NOTFOUND=66 6 NOTGZIP=67 7 8 if [ $# -eq 0 ] #[ $# -eq 0 ]與[ -z "$1" ]有同樣的效果 9 then 10 echo "Usage: `basename $0` filename" >&2 #將錯誤輸出到屏幕,&[n]表示已存在的文件描述符,&2表示標準錯誤輸出,如換成&>2,屏幕不顯示錯誤輸出,why? 11 exit $NOARGS 12 fi 13 14 filename=$1 15 16 if [ ! -f "$filename" ] 17 then 18 echo "File $filename not found!" >&2 #和上面一樣,只是感覺沒必要再stderr重定向到標準屏幕,因為預設就是標準錯誤輸出到屏幕的,所以可以去掉 19 exit $NOTFOUND 20 fi 21 22 if [ ${filename##*.} != "gz" ] #變數替換,拿走.之前的所有的字元串,參照《ABS》中文版第23頁echo ${PATH#*:}拿掉第一個:左邊所有字串 23 then ###是判斷最後面的. #只是判斷第一個 ##最遠匹配 #最近匹配 24 echo "File $1 is not a gzipped file!" 25 exit $NOTGZIP 26 fi 27 28 zcat $1 | more #zcat命令用於不真正解壓縮文件,就能顯示壓縮包中文件的內容的場合 29 30 exit $?
腳本運行結果