• linux脚本:shell, 判断输入参数的个数(命令行)


    if [ $# != 3 ] ; then
    echo "USAGE: $0 from to"
    echo " e.g.: $0 ~/oucaijun/from ~/oucaijun/to"
    exit 1;
    fi

    ————————————————————————

    $#代表了命令行的参数数量

    位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字

    -ne    不等于

    ————————————————————————

    UNIX Shell -> 比较:

    整数比较

    -eq

    等于

    if [ "$a" -eq "$b" ]

    -ne

    不等于

    if [ "$a" -ne "$b" ]

    -gt

    大于

    if [ "$a" -gt "$b" ]

    -ge

    大于等于

    if [ "$a" -ge "$b" ]

    -lt

    小于

    if [ "$a" -lt "$b" ]

    -le

    小于等于

    if [ "$a" -le "$b" ]

    <

    小于(在双括号中使用)

    (("$a" < "$b"))

    <=

    小于等于(在双括号中使用)

    (("$a" <= "$b"))

    >

    大于(在双括号中使用)

    (("$a" > "$b"))

    >=

    大于等于(在双括号中使用)

    (("$a" >= "$b"))

    字符串比较

    =

    等于

    if [ "$a" = "$b" ]

    ==

    等于

    if [ "$a" == "$b" ]

    =等价.

     

    ==比较操作符在双中括号对和单中括号对中的行为是不同的.

      1 [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么结果将为真
      2 [[ $a == "z*" ]]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
      3 
      4 [ $a == z* ]      # 文件扩展匹配(file globbing)和单词分割有效. 
      5 [ "$a" == "z*" ]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真. 
      6 
      7 # 感谢, Stephane Chazelas
    !=

    不等号

    if [ "$a" != "$b" ]

    这个操作符将在[[ ... ]]结构中使用模式匹配.

    <

    小于, 按照ASCII字符进行排序

    if [[ "$a" < "$b" ]]

    if [ "$a" < "$b" ]

    注意"<"使用在[ ]结构中的时候需要被转义.

    >

    大于, 按照ASCII字符进行排序

    if [[ "$a" > "$b" ]]

    if [ "$a" > "$b" ]

    注意">"使用在[ ]结构中的时候需要被转义.

    -z

    字符串为"null", 意思就是字符串长度为零

    -n

    字符串不为"null".

    -n使用在中括号中进行条件测试的时候, 必须要把字符串用双引号引用起来,这才是安全的行为. 如果采用了未引用的字符串来使用! -z, 甚至是在条件测试中括号中只使用未引用的字符串的话, 一般也是可以工作的, 然而, 这是一种不安全的习惯. 习惯于使用引用的测试字符串才是正路.

    #!/bin/sh
    a=1
    #if [ "$a" -eq "$1" ]; then  # ok
    if [ "$1" -eq "$a" ] # ok
    #if[ "$1" -eq "$a" ]  # not ok
    then
        echo "11 var1 == a"
    fi
    
    
    if [ "$1" == "$a" ]; then # ok
    #if [ $1 == $a ]; then # can do but not a good style
    #if [ $1==$a ]; then # not ok
        echo "22 var1 == a"
    fi
    参考: 1. Shell脚本中判断输入参数个数的方法 http://www.jb51.net/article/56549.htm 

  • 相关阅读:
    sql server不存在或访问被拒绝
    维护Sql Server中表的索引
    雷声大雨点小-参加江西省网站内容管理系统培训有感
    关于WINFORM中输入法的设置
    虚拟主机下asp.net 2.0的导航控件treeview,menu等出错。
    css背景图片不重复
    网上寻宝惊魂记
    一个不大注意的存储过程的小细节。
    css——之三行三列等高布局
    今天才发现ff不支持navigate。
  • 原文地址:https://www.cnblogs.com/mylinux/p/4834332.html
Copyright © 2020-2023  润新知