Zsh

如何在 zsh 的函式中獲取位置參數?

  • September 30, 2022

我在我的 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。

問題在於你的if情況。您應該只使用一個=,或者您也可以使用[[ condition ]].

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

或者:

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

引用自:https://unix.stackexchange.com/questions/719335