一. 数字测试

  格式:n1  -op  n2

  测试操作op:

    eq/ne/le/ge/lt/gt    -->    等于/不等于/小于等于/大于等于/小于/大于

  1. 数字比较可以使用特殊的(())操作符,用法更接近于C语言,见数字测试

二. 字符串测试

  s1 = s2    #s1与s2是否相同

  s1 != s2    #s1与s2是否不相同

  s1 < s2    #s1是否小于s2

  s1 > s2    #s1是否大于s2

  -n s1     #s1长度是否大于0

  -z s1      #s1长度是否为0

1. 字符串比较的时候大于小于符号"<>"需要转义

if [ $s1 \> $s2]
then
echo "$s1 is greater than $s2"
else
echo "$s2 is greater than $s1"
fi

2. 字符串大小比较使用字符的ASCII码值比较,即大写字母小于小写字母。(而sort命令的排序方式恰好相反)

3. 未定义的变量字符串长度为0

三. 文件测试

  格式: f1 -nt f2    f1是否比f2新

      f1 -ot f2    f1是否比f2旧

      -op file

  op操作符:

    e/d/f/r/w/x/s/L/O/G   -->   是否 存在/目录/文件/可读/可写/可执行/存在且不为空/符号链接/当前用户拥有/当前组拥有

  1.比较文件的新旧时按照创建时间比较的,且要求两个文件都存在,否则返回失败条件

if [ -G $HOME/test ]
then
echo "You are in the same group as the file"
else
echo "The file is not owned by your group"
fi

Linux Shell 04 数字/字符串/文件测试的更多相关文章

  1. linux shell 命令获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...

  2. linux shell学习(字符串操作)--01

    http://blog.csdn.net/shuanghujushi/article/details/51298672 在bash shell的使用过程中,经常会遇到一些字符串string的操作,下面 ...

  3. Shell基本运算符之文件测试符

    文件测试运算符 ================摘自菜鸟教程================= 文件测试运算符用于检测UNIx文件的各种属性: 操作符 说明 例子 -b 检测文件是否是块设备文件,如果 ...

  4. Linux Shell编程(19)——测试与分支

    case和select结构在技术上说不是循环,因为它们并不对可执行的代码块进行迭代.但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.在代码块中控制程序分支case (in ...

  5. linux shell下除了某个文件外的其他文件全部删除的命令

    Linux反选删除文件 最简单的方法是 # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)  如果是多个要排除的,可以这样: # rm -r ...

  6. Linux Shell脚本读写XML文件

    在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  7. linux shell 之终端读写文件数据流和重定向>,<,<<,>>

    终端实现文件中数据流的读写: 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file.将终端数据写到文件file中 command < file 将输入重 ...

  8. 【操作系统作业—lab1】linux shell脚本 遍历目标文件夹和所有文件 | 包括特殊字符文件名的处理

    要求:写一个linux bash脚本来查看目标文件夹下所有的file和directory,并且打印出他们的绝对路径. 运行command:./myDir.sh  input_path  output_ ...

  9. linux Ubuntu14.04 make编译文件报错:No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so'. Stop.

    错误过程:当“make”编译文件时报错No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so ...

随机推荐

  1. sprint3(第八天)

    昨天忘了发博客,最近在整合前台和后台的内容,在sprint结束前应该能整合好,然后实现前后台的联系,实现点餐功能. 最近要准备大作业也要复习四六级考试,所以花在项目的时间比较少了,请老师谅解. 燃尽图

  2. ListBox实现拖拽排序功能

    1.拖拽需要实现的事件包括: PreviewMouseLeftButtonDown LBoxSort_OnDrop 具体实现如下: private void LBoxSort_OnPreviewMou ...

  3. C#更改win7系统时间的代码,以及为什么更改不成功

    我在用C#更改win7系统的时间时(必须用管理员的权限,点击要运行程序,鼠标右键“以管理员权限运行”),下面列出了3张图片,使用第一张的代码执行不成功,使用第二张图片可以执行成功,第三张图片是说明原因 ...

  4. 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等

    [源码下载] 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等 作者:webabcd ...

  5. spring详解(1)

    1.  什么是spring? Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发 ...

  6. ahjesus让nodejs支持dotjs模板

    经过几天的实验加搜索,终于知道一个中间件可以解决这个问题了 npm install consolidate consolidate传送门 传送门2使用说明传送门快照:ahjesus Since doT ...

  7. centos 7安装mysql报错-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory

    [root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql -bash: ./scripts/mysql_install_db: ...

  8. Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileDebugAidl'.的问题解答

    Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for ta ...

  9. HTML CSS样式表布局

    一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. 示例: 二.position:absolute 1.外层没有position:absolute(或r ...

  10. ASP.NET本质论第二章应用程序对象学习笔记1

    1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...