文件测试是指测试某一个文件或者目录是否存在

测试文件格式[ 操作符 目录或者文件 ]    注意左括号和操作符之间有一个空格,文件或者目录 与右边的括号之间也有一个空格。

-d 测试是否为目录
-e 测试文件或者目录是否存在
-f 测试是否为文件
-r 测试当前用户是否对文件有读权限
-w 测试当前用户是否对文件有写权限
-x 测试当前用户是否对文件有执行权限
-L 测试是否为符号链接文件

测试的结果可以使用$?来获取,$?表示上一条命令的执行是否成功  或者  判断条件是否成立:   如果运行成功则返回0,如果出现异常或者失败时,返回非0值。于是就可以$?来判断文件测试是否成功了。

实例:

#!/bin/bash
#文件名:test.sh [ -d /etc ]
echo $? [ -f /etc ]
echo $? [ -f test.sh ]
echo $? [ -x test.sh ]
echo $?

 运行结果:

ubuntu@ubuntu:~$ ./test.sh
0
1
0
0
ubuntu@ubuntu:~$

  强化:

#!/bin/bash
#文件名:test.sh [ -d /etc ] && echo "one"
[ -f /etc ] && echo "two"
[ -f test.sh ] && echo "three"
[ -x test.sh ] && echo "four"

  运行:

ubuntu@ubuntu:~$ ./test.sh
one
three
four
ubuntu@ubuntu:~$

  

shell脚本--文件测试的更多相关文章

  1. shell 脚本文件Windows传到Linux后编码问题

    shell 脚本文件Windows传到Linux后编码问题 下面这个标红的位置出现,是由于脚本从Windows机器上直接传到linux文件格式不对导致的. cat -v a.sh help^M exi ...

  2. 远程调用shell脚本文件和远程复制文件

    1.安装sshpass yum install sshpass 2.本地调用远程服务器的shell脚本文件: sshpass -p sa ssh root@192.168.56.105 -C &quo ...

  3. 创建shell脚本文件

    简单来说脚本就是将需要执行的命令保存到文本中,按照顺序(由上往下执行),它是解释型的,不需要 编译 脚本格式 #!/bin/bash或者#!/bin/env bash开头 第一个shell脚本:hel ...

  4. shell脚本编程测试类型下

    一bash的数值测试 -v VAR变量VAR是否设置 数值测试:-gt 是否大于greater-ge 是否大于等于-eq 是否等于-ne 是否不等于  not equal-lt 是否小于-le 是否小 ...

  5. 关于shell脚本——条件测试、if语句、case语句

    目录 一.条件测试 1.1.表达说明 1.2.test命令 文件测试 1.3.整数值比较 1.4.字符串比较 1.5.逻辑测试 二.if语句 2.1.单分支结构 2.2.双分支结构 2.3.多分支结构 ...

  6. 二、shell 脚本条件测试

    目录 一.条件测试 test 格式 文件测试 文件测试常见选项 整数值比较 字符串比较 浮点数的运算 逻辑测试 二.if语句 1单分支 2双分支结构 3多分支结构 三元运算符 三.case 一.条件测 ...

  7. 如何进行shell脚本正确性测试

    在实际工作中,需要对shell脚本进行正确性测试. 如何用最快最有效的方式进行测试? 很多开发的习惯是,二话不说,写完/拿到,就跑一把,看看输入,输出,想要的操作是否完成,也就过了. 其实这是十分不严 ...

  8. 【Shell脚本】运行shell脚本文件的几种方法与区别

    Shell脚本不同的运行方式会对当前Shell设置或者运行结果有所不同. 假设现在有一个脚本名为display_shell_script_args.sh,其内容如下: #!/home/pyf/bin/ ...

  9. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

随机推荐

  1. Session共享的四种方法

    1. 基于NFS的Session共享 NFS是Net FileSystem的简称,最早由Sun公司为解决Unix网络主机间的目录共享而研发. 这个方案实现最为简单,无需做过多的二次开发,仅需将共享目录 ...

  2. arcgis js api前端完成面积测算

    想找一个不依赖GeometryService量算面积的方法,经过别人的帮助,终于在js帮助页上找到了.就是esri/geometry/geodesicUtils中的geodesicAreas方法,该方 ...

  3. UVA12166-Equilibrium Mobile

    Problem UVA12166-Equilibrium Mobile Accept:529  Submit:4330 Time Limit: 3000 mSec Problem Descriptio ...

  4. NET Framework 各版本官方下载

    https://msdn.microsoft.com/en-us/library/5a4x27ek(v=vs.110).aspx https://www.microsoft.com/zh-CN/dow ...

  5. PHP的运行机制与原理(底层)

    原文:http://www.jb51.net/article/74907.htm 说到php的运行机制还要先给大家介绍php的模块,PHP总共有三个模块:内核.Zend引擎.以及扩展层:PHP内核用来 ...

  6. 转载 互斥体与互锁 <第五篇>

    互斥体实现了“互相排斥”(mutual exclusion)同步的简单形式(所以名为互斥体(mutex)).互斥体禁止多个线程同时进入受保护的代码“临界区”.因此,在任意时刻,只有一个线程被允许进入这 ...

  7. day21 Pythonpython time模块和datetime模块详解

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  8. MATLAB常用快捷键命令总结

    1. 在命令窗口(Command Window)中: 1)[↑.↓]——切换到之前.之后运行过的命令,可以重复按多次来达到你想要的命令: 2)[Tab]——自动补全.在command窗口,输入一个命令 ...

  9. PAT A1108 Finding Average (20 分)——字符串,字符串转数字

    The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...

  10. TCP/IP协议---IP协议

    IP协议层 在传输层的下边,链路层的上边. IP层封装后称为数据报(传输层叫数据段,链路层叫数据帧.值得注意的是,不是所有的以太网数据帧都是IP数据报,至少以太网还要使用ARP协议.不是所有的IP数据 ...