代码之家  ›  专栏  ›  技术社区  ›  randeepsp

在shell脚本中简单使用函数

  •  1
  • randeepsp  · 技术社区  · 15 年前

    我正在尝试使用下面的简单函数。但我得到了错误的赛因一元运算器预期和输出总是 one 。有人能帮我改正吗?

    #!/bin/bash
    checkit ()
    {
    if [ $1 = "none" ]
    then
         echo "none"
    else
         echo "one"
    fi
    }
    checkit
    
    3 回复  |  直到 15 年前
        1
  •  2
  •   pavanlimo    15 年前

    $1 是整个脚本的参数,而不是函数的参数 checkit() 。因此,也向函数发送相同的参数。

    #!/bin/bash
    checkit ()
    {
    if [ $1 = "none" ]
    then
         echo "none"
    else
         echo "one"
    fi
    }
    
    checkit $1
    

    这必须奏效。

        2
  •  0
  •   Philipp    15 年前

    使用 [[ 关键字而不是 [ 内置:

    #!/bin/bash
    checkit ()
    {
    if [[ $1 = none ]]
    then
         echo none
    else
         echo one
    fi
    }
    checkit
    

    请阅读 Bash pitfalls 以及 Bash FAQ .

        3
  •  0
  •   Philipp    15 年前

    环绕 $1 引用如下:

    #!/bin/bash
    checkit ()
    {
    if [ "$1" = "none" ]
    then
         echo "none"
    else
         echo "one"
    fi
    }
    checkit