Bash-如何处理函数中的附加参数

  • 本文关键字:参数 处理函数 Bash- bash
  • 更新时间 :
  • 英文 :


我有下面的bash脚本,但我无法使用我定义的命令"kctl";如果我用";获取吊舱";。我可能需要在kctl((函数的命令后面添加一个占位符吗?

#!/bin/bash
KCTL=$(which kubectl)
KUBECONFIG=$1
kctl() {
$KCTL --kubeconfig=$KUBECONFIG
}
kctl get pods

出于某种原因,我总是得到kubectl的帮助,而不是默认命名空间中的pod列表。

提前感谢

这里ktcl本身就是一个函数,所以它有自己的参数。当你最终使用它时,你会向它传递额外的参数,但在函数中你什么都不做。

如果您的意图是将参数附加到函数内的命令中,则必须这样写:

kctl() {
$KCTL --kubeconfig=$KUBECONFIG "$@" 
}

请注意,函数如何看不到脚本的参数,因为它们被自己的参数遮蔽了。

最新更新