如何在 zsh 的函数中获取位置参数?

如何在 zsh 的函数中获取位置参数?

我的 zshrc 中有一个定义如下的函数

function k8sapi() {
    PREFIX='https://STABLE_URL'
    if [ "$1" == "prod" ];
    then
        PREFIX='https://PROD_URL'
    fi

    echo "1 --> $1"
    echo "2 --> $2"
    curl -s "${PREFIX}/${2}"
}

当我运行这个时:

$ k8sapi stable foo
k8sapi:2: = not found

我究竟做错了什么?如何查看 zsh 中函数的参数?

这些函数是使用 bash shell 从我的旧笔记本电脑复制过来的,因此我尝试将它们迁移到 zsh。

答案1

问题出在你的if条件上。您应该只使用一个=,或者也可以使用[[ condition ]].

 if [[ $1 == "prod" ]];
 then
    PREFIX='https://PROD_URL'
 fi

或者:

 if [ "$1" = "prod" ];
 then
    PREFIX='https://PROD_URL'
 fi

相关内容