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. 编写你的第一个 Java 版 Raft 分布式 KV 存储

    前言 本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目.该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现:该项目 ...

  2. SpringBoot学习(六)-->SpringBoot的自动配置的原理

    Spring Boot的自动配置的原理 Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入 ...

  3. 【转】AJAX中JSON数据的返回处理问题

    AJAX处理复杂数据时,便会使用JSON格式.常用在对数据库的数据查询上.在数据库查询到数据后,便可在处理页面直接将数据转为JSON格式,然后返回. 本篇主要讨论:jQuery中,JSON数据在AJA ...

  4. struts2_struts2线程安全吗?

    线程安全:在一个进程中有多个线程并发执行,线程执行过程中,变量值是相同的,执行结果也是相同的 struts2线程安全 1.每次请求都会重新创建新的action对象,所以线程安全. 2.由于action ...

  5. Laravel篇二之本地版本库关联github

    以往的工作中都是使用svn作为版本控制,对git分布式的有些陌生,本篇主要记录的本地存储myWeb-laravel的git版本库与github建立关联. 1.首先进入本地myWeb-laravel,执 ...

  6. mybatis插件机制

    目录 mybatis插件机制 主要 类/接口 和 方法 mybatis插件机制实现 mybatis插件机制 mybatis的插件机制使用动态代理实现,不了解的朋友请先了解代理模式和动态代理:插件本质是 ...

  7. memcached 源码阅览 一

    想要快速了解memcached内部原理么?那么赶紧离开本页,这会耽误您的时间. 不知时隔多少时间,今天受了些刺激,在码农路上开始犹豫起来,但是想想自己也没其他本身,就只好放下王者荣耀,重新看看技术内容 ...

  8. div和span标签

    ------------------------ ------------------------ ------------------------ 块级标签独占一行,不和别的标签在同一行显示:行内标 ...

  9. C# Dev XtraReport 简单测试

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using DevExpre ...

  10. HTML DOM classList 属性

    页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS类. 添加 ...