shell 编程重要的应用就是管理系统,对于管理系统中成千上万的程序而言,查询某个文件名是否存在,并且获取该文件名所指代文件基本信息是系统管理员的基本任务。shell命令可以很轻松的完成这项任务。

#program this is a example for ################
######### command test ################
read -p "type in the filename: " filename
test -z $filename &&echo "you must put in a legal name"&&exit 0

//连续的&&表示命令是顺序执行的,前一个执行成功才能执行后一个中间有任何一个环节错误,则返回报错信息

test ! -e $filename &&echo "not exist" &&exit 0
test -e $filename &&echo "exit"

这里想实现实现的功能是,如果文件不存在则退出script,本来想写作

test -e $filename&&echo "exit"||echo"not exit"&&exit 0

但是发现这样无论filename是否存在,程序都会在这里退出
因为如果文件存在,则test传回一个0值,||判断后执行echo "exit",然后又传回一个0值,&&判断后执行exit 0
如果test 传回一个非0值,则||判断后执行echo "not exit",传回0值,&&判断后还是执行exit 0;
如果写成

test -e $filename ||echo "not exit"&&echo "exit"

如果存在,test返回非0,执行echo "exit"
如果不存在,则test返回0,执行echo "not exit"
echo "not exit" 又返回0,再执行echo "exit"
所以没办法在一条语句中判断并推出。

test -f $filename &&filetype="file"
test -d $filename &&filetype="dictory"
test -r $filename &&perm=" readable"
test -w $filename &&perm=${perm}" writable"
test -x $filename &&perm=${perm}" execuable"

/perm=${变量}”__”表示在变量后补充___

echo "file type is $filetype and the mod is $perm"
exit 2

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. .NET Core 系列5 :使用 Nuget打包类库
  2. [ACM训练] 算法初级 之 搜索算法 之 深度优先算法DFS (POJ 2251+2488+3083+3009+1321)
  3. 初识JavaScript 变量, 操作符, 数组
  4. RunLoop和autorelease的一道面试题
  5. jsonp的后台怎么返回去数据
  6. MongoDB的查询
  7. C语言基础学习运算符-赋值运算符
  8. Invert Binary Tree 解答
  9. HDU 4643 GSM 简单计算几何
  10. 表单界面的兼容PC手机端解决方案
  11. Linux指令--mv
  12. Jenkins+Gradle实现android开发持续集成、打包
  13. 关于Linux下软件包aptitude的相关操作
  14. Docker系列教程01-Centos7安装新版Docker教程(10步)
  15. Sql Server数据库之事务,视图,索引
  16. C#连接数据库MD5数据库加密
  17. AangularJS过滤器详解
  18. 基于MVC4+EasyUI的Web开发框架形成之旅(4)--附件上传组件uploadify的使用
  19. babel 编译后 this 变成了 undefined
  20. 使用es6使数组的第一项和最后一项就行调换

热门文章

  1. Xdebug文档(六) 分析PHP脚本
  2. Windows Phone 8.1低功耗蓝牙开发-Nokia Treasure Tag
  3. xcopy中提示“无效的参数数量”的解决方法
  4. 查看GCC编译C的中间代码
  5. MySQL 5.1.73升级为MySQL 5.5.35详解
  6. android下拉菜单 spinner 学习
  7. 每天一道LeetCode--326. Power of Three
  8. VS2010无法断点调试解决办法
  9. 5 Logistic回归(一)
  10. Content Provider 小结
  11. 五分钟了解Hash算法
  12. DEV 控件使用之:TreeList
  13. Ext Js 6.2.1 classic grid 滚动条bug解决方案
  14. [Tensorflow] RNN - 04. Work with CNN for Text Classification
  15. Java NIO Files
  16. Javascript 的模块化编程及加载模块【转载+整理】
  17. android开发(44) 使用了 SoundPool 播放提示音
  18. PHP SPL神器实现堆排序
  19. SQL SERVER 2008 多边形问题的解决
  20. Cocos2d-x CCScale9Sprite 用法