《Advanced Bash-scripting Guide》學習(十七):用more來查看gzip文件

本文所選的例子來自于《advanced bash-scripting gudie》一書,譯者 楊春敏 黃毅

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

腳本運行結果

《Advanced Bash-scripting Guide》學習(十七):用more來查看gzip文件

?

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享