我在~/.bash_profile
现在加载新的终端窗口所花费的时间约为10秒。
是否存在更好的方式或位置来存储别名以供日常使用?
以下是我使用的一些常见示例:
alias sshcol="kubectl exec -ti $(kubectl get pod --selector=app=collector --field-selector=status.phase=Running -n etl -o jsonpath={.items[0].metadata.name}) -n etl -c collector /bin/bash"
alias logscol="kubectl logs --tail=50 $(kubectl get pod --selector=app=collector --field-selector=status.phase=Running -n etl -o jsonpath={.items[0].metadata.name}) -n etl -c collector"
答案 0 :(得分:2)
$(kubectl get pod
-这是因为每次bash_profile来源都在$(...)
中运行命令。您可以使用一个函数。
sshcol() {
kubectl exec -ti "$(kubectl get pod --selector=app=collector --field-selector=status.phase=Running -n etl -o jsonpath="{.items[0].metadata.name}")" -n etl -c collector /bin/bash
}
答案 1 :(得分:1)
您似乎在重新运行kubectl get pod
,超出了必要。例如,
# Run this once and save the result
pod=$(kubectl get pod --selector=app=collector --field-selector=status.phase=Running -n etl -o jsonpath={.items[0].metadata.name})
alias sshcol="kubectl exec -ti \"$pod\" -n etl -c collector /bin/bash"
alias logscol="kubectl logs --tail=50 \"$pod\" -n etl -c collector"
您可能希望使用函数代替别名。
但是,如果kubectl get pod
是在定义时运行的错误,并且确实需要在使用别名时运行,则应该 definitiely 定义一个函数,如{ {3}}。