• 脚本判断命令


    Shell常用特殊变量

    经常会在shell命令中,看到$0, $#, $*, $@, $?, $$这样的取值,这些代表什么呢?

    变量含义
    $0 当前脚本的文件名
    $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
    $# 传递给脚本或函数的参数个数
    $* 传递给脚本或函数的所有参数
    $@ 传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同
    $? 上个命令的退出状态,或函数的返回值。成功返回0,失败返回1
    $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

    $* 和 $@ 都是将参数一个一个返回

    "$*"将所有参数当做一个整体字符串返回 , "$@"将参数一个一个返回

    常用判断参数

    在shell命令文件中还经常会看到类似与if [ -z "${SPARK_HOME}" ]; then这样的判断语句?是不是也和我一样很疑惑-z是什么含义?

    下面是几个常见的参数,供查询使用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -a file exists.
    -b file exists and is a block special file.
    -c file exists and is a character special file.
    -d file exists and is a directory.
    -e file exists (just the same as -a).
    -f file exists and is a regular file.
    -g file exists and has its setgid(2) bit set.
    -G file exists and has the same group ID as this process.
    -k file exists and has its sticky bit set.
    -L file exists and is a symbolic link.
    -n string length is not zero.
    -o Named option is set on.
    -O file exists and is owned by the user ID of this process.
    -p file exists and is a first in, first out (FIFO) special file or named pipe.
    -r file exists and is readable by the current process.
    -s file exists and has a size greater than zero.
    -S file exists and is a socket.
    -t file descriptor number fildes is open and associated with a terminal device.
    -u file exists and has its setuid(2) bit set.
    -w file exists and is writable by the current process.
    -x file exists and is executable by the current process.
    -z string length is zero.

    判断命令

    shell中除了有上边这样用来判断文件是否存在的参数,当然还有判断两个数是否相等这样更常规的命令

    例如,if [ $# -gt 0 ]这样判断传入参数个数是否为0

    命令含义
    -eq 等于
    -ne 不等于
    -gt 大于
    -lt 小于
    ge 大于等于
    le 小于等于

  • 相关阅读:
    170110-学习MoveIt!
    12.29-ros-gazebo高级
    12.27-ros-gazebo基础
    4.9-Simulation in gazebo or webots
    6.28-机器人模拟器Gazebo基础
    4.8-URDF in ROS
    Win32双缓冲画图原理
    Win32 计时器
    最简化的DirectX 11开发环境的配置 VS2010
    VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/10779879.html
Copyright © 2020-2023  润新知