感觉最近很忙啊,阿里巴巴和百度马上就要笔试了,算法神马的还没有看。。还是安心学习linux吧,决定在接下来的一周里,每天写一个shell script

  1. #!/bin/bash
  2. #输出提示语句,请输入一个文件名,这个脚本会检测这个文件的类型和权限
  3. echo "please input a filename,then the script will check the file's type and permission"
  4. #获取用户的输入,存放到filename变量中
  5. read -p "filename= " filename
  6. #判断filename是否为空,如果为空则返回true,然后输出文件名不能为空的提示,然后中断程序
  7. test -z $filename && echo "filename can't be null" && exit 0
  8. #如果不存在这个文件,则输出提示语句,然后中断程序
  9. test ! -e $filename && echo "$filename doesn't exit" && exit 0
  10. #判断这个filename是否为文件,如果是,将“file”赋给变量ftype
  11. test -f $filename && ftype="file"
  12. #判断这个filename是否为目录,如果是,将"directory"赋给变量ftype
  13. test -d $filename && ftype="directory"
  14. #判断这个filename的权限是否有 可读,如果有,将"readable"赋给变量perm
  15. test -r $filename && perm="readable"
  16. #判断这个filename的权限是否有 可写,如果有,将"writable"赋给变量perm
  17. test -w $filename && perm="$perm writable“
  18. #这个是判断是否可执行的,以上三个,分别就是linux的r,w,x权限
  19. test -x $filename && perm="$perm executable"
  20. #输出结果喽~
  21. echo "$filename type=$ftype    permssion=$perm"

巧用test判断来写shell脚本的更多相关文章

  1. 写shell脚本速查笔记

    linux shell脚本的语法蛋疼,而且对于java开发人员来说又不常用,常常是学了一次等到下次用的时候又忘记了.因此制作这个速查笔记,用于要写shell脚本时快速回忆&速查. 获取当前脚本 ...

  2. 十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...

  3. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  4. 写Shell脚本自动生成首行

    送给经常写shell脚本的兄弟们常写shell脚本的时候,大家一定都有困扰,怎么样能让.sh文件的表头自己生成,不用我们自己去敲呢 首先我们要编写一下/etc/vimrc执行 vim /etc/vim ...

  5. 写shell脚本需要注意哪些地方----零基础必看

    shell脚本是完全靠自学的,每一步需要注意的问题都是我自己亲自实践出来的,对于大神可能看来是小儿科,但是对于新手,是必须注意的 一.首先执行 echo $SHELL查看本机的解释器, 二.开始写脚本 ...

  6. 使用C#给Linux写Shell脚本

    在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...

  7. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断

    7月12日任务 20.5 shell脚本中的逻辑判断20.6 文件目录属性判断20.7 if特殊用法20.8/20.9 case判断 20.5 shell脚本中的逻辑判断 逻辑判断在shell中随处可 ...

  8. Shell脚本开发规范

    一.前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这 ...

  9. Shell 脚本编程最佳实践

    前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这个东 ...

随机推荐

  1. linux shell: 搜索字符串,剔除包含特定字符的行

    搜索代码中出现CONFIG_BOOTARGS的行,但又不希望有#define和#undef, 暂时不知带如何直接用一个语句做到,因此用了如下三个语句. find . -type f | xargs g ...

  2. select into from 和 insert into select 的用法和区别(转)

    转自:http://www.studyofnet.com/news/182.html select into from 和 insert into select都是用来复制表,两者的主要区别为: se ...

  3. 【转】论文、会议、期刊评价|Indicate paper, conference, Journal

    转自“浙江大学计算机学院软硬件协同设计实验室”:http://multicore.zju.edu.cn/fatlab/Indicate-paper.htm 1           体系结构领域,排名为 ...

  4. QT学习 之 文本文件读写

    上一章我们介绍了有关二进制文件的读写.二进制文件比较小巧,却不是人可读的格式.而文本文件是一种人可读的文件.为了操作这种文件,我们需要使用QTextStream类.QTextStream和QDataS ...

  5. 基于visual Studio2013解决C语言竞赛题之0402奇偶求和

      题目 解决代码及点评 这道题考察我们对循环和判断的综合应用 #include <stdio.h> #include <stdlib.h> #include < ...

  6. Android中如何判断是否联网

    首先在AndroidManifest.xml中添加与连接网络相关的权限: [xhtml]  view plain copy   <uses-permission android:name=&qu ...

  7. [置顶] mybatis批量新增系列之有主键的表的批量新增

    前面介绍了无主键的表的批量插入,文章地址:http://blog.csdn.net/zhouxiaoyun0228/article/details/9980181 但是在开发中往往许多的表是需要主键的 ...

  8. Jenkins Maven打包出错异常的解决方法

    Jenkins是一个很好用的打包部署工具,实现一键式部署项目,在项目处于测试阶段或者对于运维人员来讲是非常方便的一个工具. 但是最近使用Jenkins部署项目时老是出错,主要是maven打包的问题,错 ...

  9. 【Eclipse】报错提示删掉@Override

    是因为项目的JRE System Library版本不对,点击Edit进入Edit Library 界面,因为项目默认是使用Eclipse自带的jdk版本(Workspace default JRE) ...

  10. c,c++,java格式总结

    c语言 java