【问题标题】:passing parameters and return values in shell在shell中传递参数和返回值
【发布时间】:2018-11-16 09:02:21
【问题描述】:

我写了一个名为“connectTo”的函数,它接受名为“options”的参数,它应该在返回之前通过回显返回一些字符串。

 connectTo ${options}

这可行,即参数在其中传递,但是当我写时

str=$(connectTo ${options})

然后 connectTo 就像没有传递任何参数一样工作> 我是 shell 脚本的新手,显然做错了什么,但是什么? (记住我需要一个不能是全局变量的函数返回的字符串)

function connectTo(){
    local flag=false
    local str=""
    for i in $@; do
            if [ "$flag" = true ]; then
                    str=$i
                    flag=false
            elif [[ "$i" = "--foo" || "$i" = "-f" ]]; then
                    flag=true
            fi
            echo "$i"
    done;
    if [ "$str" = "" ]; then
            echo ""
            return 0
    fi
    echo "found"
    return 0
}

connectTo ${options} 的情况下,参数会被打印,而在第二种情况下则不会

【问题讨论】:

    标签: shell parameters return-value


    【解决方案1】:

    在分配变量时不应使用“$”符号。所以应该是 str =connectTo [value_of_argument]

    $ 用于访问变量的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多