zoukankan      html  css  js  c++  java
  • Shell脚本中的 测试开关 和 特殊参数

    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} 来访问
  • 相关阅读:
    第08组 Alpha冲刺 (6/6)
    第08组 Alpha冲刺 (5/6)
    第08组 Alpha冲刺 (4/6)
    第08组 Alpha冲刺 (3/6)
    第08组 Alpha冲刺 (2/6)
    第08组 Alpha冲刺 (1/6)
    第一次编程作业
    第01组 Alpha冲刺(6/6)(组长)
    第01组 Alpha冲刺总结(组长)
    第01组 Alpha冲刺 (5/6)(组长)
  • 原文地址:https://www.cnblogs.com/wang_yb/p/4064192.html
Copyright © 2011-2022 走看看