1. 测试开关

Shell中自带的一些测试指令, 下表列出这些测试指令的含义以及是否可用于 test命令, bash, ksh.

开关

test

bash

ksh

定义

-a FILE   支持 支持 只是文件存在
-b FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的磁盘设备之类的块文件
-c FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的TTY设备之类的字符文件
-d FILE 支持 支持 支持 文件存在, 并且是一个标准目录
-e FILE 支持 支持 支持 只是文件存在
-f FILE 支持 支持 支持 文件存在, 并且是一个类似于平面文件的标准文件
-g FILE 支持 支持 支持 文件存在, 并且是一个set-group-ID. 这是指对文件可执行性的用户有效组进行改变的文件许可
-G FILE 支持 支持 支持 文件存在, 并且它的组所有权是用户的有效组ID
-h FILE 支持 支持 支持 文件存在, 并且它是一个符号链接. 和 -L 一样
-k FILE 支持 支持 支持 文件存在, 并且它粘着位设置. 这意味着只有文件的所有者或者目录的所有者可以删除文件
-l STRING 支持     和类似于 /usr/bin/test -l string -gt 5 && echo 的数字值, 比较 STRING 长度
-L FILE 支持 支持 支持 文件存在, 并且它是一个符号链接. 和 -h 一样
-n STRING 支持 支持 支持 STRING 的长度非零
-N FILE   支持 支持 文件存在, 但是自从最近一次读入之后, 已经被修改
-o OPTION 支持 支持 支持 如果 shell 的 OPTION 被打开, 返回真, 例如 set -x
-O FILE 支持 支持 支持 文件存在, 并且它的所有者由有效的用户ID决定
-p FILE 支持 支持 支持 文件存在, 并且它是一个命名管道 (or FIFO)
-r FILE 支持 支持 支持 文件存在, 并且可读
-s FILE 支持 支持 支持 文件存在, 并且它的大小大于 0 字节
-S FILE 支持 支持 支持 文件存在, 并且它是一个 socket
-t [FD] 支持 支持 支持 在一个终端打开 FD(文件描述符), 默认是 stdout
-u FILE 支持 支持 支持 文件存在, 并且 set-user-ID 被设置
-w FILE 支持 支持 支持 文件存在, 并且可写
-x FILE 支持 支持 支持 文件存在, 并且可执行
-z STRING 支持 支持 支持 STRING 的长度为 0

2. 特殊参数

shell中的特殊参数是shell的内部变量, 要用 前缀$ 来使用.

比如 echo $? 就是获取 shell内部变量 "?" 的值.

内容变量一览:

参数

定义

* 从 1 开始, 完成所有位置变量列表. 如果被双引号引上, 成为有 IFS (内部文件分隔符)值的第一个字符分割的单词
@ 从 1 开始, 完成所有位置变量列表. 如果被双引号引上, 将每一个位置参数变成单个词
# 以十进制表示的位置参数数目
? 最后或者最近一个前台任务的返回码. 如果任务被一个信号杀掉, 返回值为 128 加上信号的值. 例如: 标准kill信号值是 15, 那么返回值就是 143
- 所有发送给 shell 的标志, 或者 set 命令提供的标志
$ shell 进程ID. 如果在子shell中, 它被扩展为当前shell的值, 而不是子shell的值
! 最近被放到后台执行的命令的进程ID
_ 扩展为前一个命令的最后一个参数
0 扩展为shell或者shell脚本的名字
1…9 提供给shell, 函数或者脚本的位置参数. 比 9 大的值可以用 ${number} 来访问

Shell脚本中的 测试开关 和 特殊参数的更多相关文章

  1. shell脚本中文件测试

    shell脚本中文件测试 author:headsen chen  2017-10-17  14:35:19 个人原创,转载请注明作者,否则 依法追究法律责任 [ -f  filename  ]   ...

  2. shell脚本中的整数测试

    shell脚本中的整数测试 author:headsen chen      2017-10-17   13:58:12 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,test用法:tes ...

  3. linux,shell脚本中获取脚本的名字,使用脚本的名字。

    需求描述: 写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本 中会有usage()这种函数,可能就会用到脚本的名字. 实现方法: shell脚本中,通过使用$0就可以获取到脚本 ...

  4. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  5. (转)shell脚本之文件测试操作符及整数比较符

    shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一 ...

  6. shell脚本中case的用法

    shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char ...

  7. Shell脚本的条件测试与比较

    Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试 ...

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

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

  9. Shell脚本中的while getopts用法小结

    getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数.getopts被Shell程序用来分析位置参数,option包含需要被识别的选项字符,如果这里的字符后 ...

随机推荐

  1. Go基础系列:惰性数值生成器

    惰性数值生成器是指在需要的时候才生成下一个数值,不需要的时候就卡在那.这和python的列表推导表达式类似.惰性生成器的好处是不会一次性将全部结果返回或放进内存,而是每次只返回一个,这样不会在某一时刻 ...

  2. SpringBoot学习(五)-->SpringBoot的核心

    SpringBoot的核心 1.入口类和@SpringBootApplication Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的J ...

  3. C# 给一个控件去掉焦点

    给一个控件去掉焦点(如选中控件按钮button时,按钮出现方框显示):例如给form这个窗体中的button按钮去焦点1.首先在form这个窗体中拖一个label按钮,去文字,设置背景为透明: 2.然 ...

  4. 使用xhprof会在nginx下报502 Bad Gateway错误

    使用xhprof会在nginx下报502 Bad Gateway错误 xhprof_enable()xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMO ...

  5. Heaps(Contest2080 - 湖南多校对抗赛(2015.05.10)(国防科大学校赛决赛-Semilive)+scu1616)

    Problem H: Heaps Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 48  Solved: 9[Submit][Status][Web Bo ...

  6. Java并发编程-CountDownLatch

    基于AQS的前世今生,来学习并发工具类CountDownLatch.本文将从CountDownLatch的应用场景.源码原理解析来学习这个并发工具类. 1. 应用场景 CountDownLatch是并 ...

  7. JavaScript是如何工作的:事件循环和异步编程的崛起 + 5种使用 async/await 更好地编码方式!

    摘要: 深度理解JS事件循环!!! 原文:JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式! 作者:前端小智 Fundebug经授权转载, ...

  8. 今天学习了flex布局

    前言:这个网站详细讲了水平.垂直.水平垂直的css方法.https://css-tricks.com/centering-css-complete-guide/ 布局的传统解决方案,基于盒状模型,依赖 ...

  9. HDU3038(KB5-D加权并查集)

    How Many Answers Are Wrong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  10. angular ng-repeat 动态获取的dom片段 显示

    .filter('to_trusted', ['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(tex ...