bash - 在多个子目录下执行多个同名的shell脚本
问题描述
我正在使用父目录中的 shell 脚本来调用多个其他 shell 脚本,它们都具有相同的名称,但在不同的子目录下。让我在下面详细说明:
Parent directory: Script deploy_modules.sh
SubDir A: deploy.sh
SubDir B: deploy.sh
SubDir C: deploy.sh
....
SubDir Z: deploy.sh
脚本 deploy_modules.sh 依次调用每个子目录的 deploy.sh,方法是进入该目录,调用脚本,然后退出并进入下一个目录。
有没有办法在一行命令中顺序执行所有 deploy.sh 文件?我需要该命令足够通用,以自动将任何新添加的子目录包含在另一个 deploy.sh 中,并且在删除一个或多个子目录时不会出错。
解决方案
这将deploy.sh
在子目录中找到当前目录所在位置的所有脚本 - 并执行它们。
无需cd
进入子目录:
for dep in */deploy.sh; do "$dep"; done
进入cd
每个子目录:
for dep in */deploy.sh; do (cd "$(dirname "$dep")"; ./deploy.sh) done
推荐阅读
- powershell - 在 Word 中执行 powershell 查找替换时如何使变量大小写敏感
- apache - RewriteRule [F,L] 在 Apache 日志中显示 500 而不是 403
- r - R中glm插入符号模型的方差膨胀VIF
- html - xslt中列表元素内的分隔斜体和跨度标签
- javascript - 在自动完成中禁用退格删除选项
- javascript - AJAX 在滚动到底部时加载更多
- linux - 用于 CentOS / Red Hat 7.8 的 Pericom 串行端口驱动程序(正确的 baud_base)
- sql - 我们有针对 T-SQL CONCAT_WS 函数的解决方法吗?
- python - 如何拆分pyspark数据框并创建新列
- linux - 在星期二的每个月的奇数天运行 cron 作业?