首页 > 解决方案 > 在多个项目上迭代类似的命令

问题描述

如果我正在尝试执行类似kubectl apply -f dir1/subdir1/deployment.yml, 的命令并且我有subdir1,subdir2等,我怎样才能一次为所有这些命令运行该命令?

我试过kubectl apply -f dir1/*/deployment.yml并将所有的都传递deployment.yml给单个-f标志,使其无效,因为该标志接受单个参数。

我也试过kubectl apply -f dir1/{subdir1,subdir2}/deployment.yml没有运气。

PS:如果这很重要,我将 zsh 用于我的 shell 和 oh-my-zsh+p10k。

标签: shellkuberneteskubectl

解决方案


与命令无关的解决方案zsh

for d (dir1/*/deployment.yml) kubectl apply -f "$d"

这使用了一种zsh特定的循环替代形式for,通常写为

for d in dir1/*/deployment.yml; do kubectl apply -f "$d"; done

(尽管这与只运行kubectl一次并让它迭代配置本身是不同的。)


推荐阅读