使用alias简化kubectl命令时传入参数问题

现状

使用kubectl管理k8s集群很爽,但是kubectl的命令却很长,如果管理多个集群,需要带上kubeconfig文件的路径,再加上namespace,如果是exec的话,那么命令恐怕一行都装不下了。

思路

那么自然而然的就想到使用alias来缩短命令。希望实现:
alias kclxx=kubectl --kubeconfig=/kubeconfig/path --namespace=
这里希望把ns作为一个参数传入alias,有了这个alias,就可以直接传入ns,使用kclxx ns get po来查看对应集群、对应ns的pod了,其他命令以此类推。

问题

But,凡事都有但是,alias不支持参数,我估计alias就相当于c中的#define,属于直接文本替换,所以自然没办法支持参数了,所以想传入ns的想法破灭了。

解决方案

所以就只能使用函数了:
kcljxq='_a(){kubectl --kubeconfig=/Users/zhenggui/.kube/config-xxx --namespace=38-$*}; _a
说明一下,这里定义了一个alias,内容为一个名为a的函数,在这个函数中直接执行命令,同时将参数用$*的方式拼接到命令最后,大功告成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值