本文所选的例子来自于《Advanced Bash-scripting Gudie》一书,译者 杨春敏 黄毅

 #!/bin/bash
 #使用more查看gzip文件

 NOARGS=
 NOTFOUND=
 NOTGZIP=

  ]                                    #[ $# -eq 0 ]与[ -z "$1" ]有同样的效果
 then
         echo "Usage: `basename $0` filename" >&2   #将错误输出到屏幕,&[n]表示已存在的文件描述符,&2表示标准错误输出,如换成&>2,屏幕不显示错误输出,why?
         exit $NOARGS
 fi

 filename=$

 if [ ! -f "$filename" ]
 then
         echo "File $filename not found!" >&2       #和上面一样,只是感觉没必要再stderr重定向到标准屏幕,因为默认就是标准错误输出到屏幕的,所以可以去掉
         exit $NOTFOUND
 fi

 if [ ${filename##*.} != "gz" ]                     #变量替换,拿走.之前的所有的字符串,参照《ABS》中文版第23页echo ${PATH#*:}拿掉第一个:左边所有字串
 then                                               ###是判断最后面的. #只是判断第一个 ##最远匹配 #最近匹配
         echo "File $1 is not a gzipped file!"
         exit $NOTGZIP
 fi

  | more                                     #zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合

 exit $?

脚本运行结果

最新文章

  1. 进击的Python【第二十一章】
  2. jsf组件对应表
  3. 复旦高等代数 I(16级)思考题
  4. locate
  5. 理解模板引擎Razor 的原理
  6. canvas游戏小试:画一个按方向键移动的圆点
  7. ASP.NET的分页方法(四)
  8. editplus 正则删换行
  9. nodejs模块学习: connect2解析
  10. CSS3 [attribute^=value] 选择器
  11. Java框架spring 学习笔记(十四):注解aop操作
  12. File类相关操作
  13. 【BZOJ2839】集合计数&&【BZOJ3622】已经没有什么好害怕的了
  14. 记录Git的安装过程
  15. 在IDEA里创建web项目,以及web 项目部署
  16. Git 环境设置(安装)
  17. Head First Python学习笔记3——持久存储
  18. Gitlab 403 forbidden 并发引起IP被封
  19. hadoop学习WordCount+Block+Split+Shuffle+Map+Reduce技术详解
  20. springcloud---2

热门文章

  1. 如何搭建一个 Git 版本控制服务端?
  2. Asp.Net MVC anti-forgery token的问题:nameidentifier or identityprovider not present
  3. Python3.6全栈开发实例[005]
  4. ZFI_VENDOR_CREATE
  5. C# 函数3
  6. 爬虫五 Beautifulsoup模块详细
  7. JavaScript:学习笔记(6)——New运算符
  8. iOS git 托管代码 常用几个操作
  9. 对JAVA的集合的理解
  10. 【HackerRank】QuickSort(稳定快排,空间复杂度O(n))