是否可以在使用别名的命令末尾使用别名。完整的命令是:
kubectl delete pod nginx --grace-period=0 --force
这些是我的别名:
alias k=kubectl
alias gpf="--grace-period=0 --force"
我想把两个别名合并成这样的东西:
k delete pod nginx gpf
别名不是宏;它替代了一个命令。--grace-period=0
不是命令;别名的组成";不会起作用。
此外,您的两个命令都没有定义别名。别名由定义
alias NAME='command to execute'
您缺少alias
关键字。因此,您对gpf
和k
的定义不定义别名,而是定义shell变量。
尽管如此,你对gpf
的定义还是很有用的,因为你可以在中使用它
kubectl $gpf
以下shell函数具有您所要求的行为:
k() {
local -a args=( kubectl ) # initialize argument list to "kubectl"
for arg do # iterate over each funtion argument
if [[ $arg = gpf ]]; then # if that argument is "gpf"...
args+=( --grace-period=0 --force ) # ...append the specific arguments we want
else
args+=( "$arg" ) # otherwise, just append what we were given
fi
done
"${args[@]}" # then run our list as a command.
}
k删除pod nginx gpf->这实际上是有效的,但它抛出了一个错误。
如果您仔细注意,pod的删除不会花费太多时间。
错误表明没有名为";gpf";,不确定kubectl是否假定gpf是一个pod,因为它已经替换了该值。