编写一个shell脚本,遍历当前文件夹下的所有文件。如果子文件夹下包含cmd.sh 就执行 sh cmd.sh

时间: 2024-03-18 22:39:47 浏览: 16
你可以使用以下 Shell 脚本来实现你的需求: ```bash #!/bin/bash # 遍历当前文件夹下所有文件和子文件夹 for file in $(find . -type f); do # 如果子文件夹下包含 cmd.sh,则执行 sh cmd.sh if [[ $file == */cmd.sh ]]; then sh $file fi done ``` 这个脚本会使用 `find` 命令遍历当前文件夹下的所有文件和子文件夹。对于每个找到的文件,如果它的路径包含 `/cmd.sh`,则执行 `sh cmd.sh` 命令。请注意,此脚本假定当前文件夹下没有空格或其他特殊字符的文件名。如果有这样的文件名,你需要修改脚本以正确处理它们。
相关问题

编写一个shell脚本,遍历当前文件夹下的所有文件。如果子文件夹下包含cmd.sh 就执行 sh cmd.sh。 a文件夹和b文件夹优先执行

你可以使用以下 Shell 脚本来实现你的需求: ```bash #!/bin/bash # 遍历 a 文件夹下所有文件和子文件夹,执行 cmd.sh for file in $(find ./a -type f); do if [[ $file == */cmd.sh ]]; then sh $file fi done # 遍历 b 文件夹下所有文件和子文件夹,执行 cmd.sh for file in $(find ./b -type f); do if [[ $file == */cmd.sh ]]; then sh $file fi done # 遍历其他文件夹下所有文件和子文件夹,执行 cmd.sh for file in $(find . -type f); do if [[ $file == */cmd.sh && $file != */a/* && $file != */b/* ]]; then sh $file fi done ``` 这个脚本会先遍历 `a` 文件夹下的所有文件和子文件夹,对于每个找到的文件,如果它的路径包含 `/cmd.sh`,则执行 `sh cmd.sh` 命令。然后它会遍历 `b` 文件夹下的所有文件和子文件夹,执行同样的操作。最后,它会遍历其他文件夹下的所有文件和子文件夹,对于每个找到的文件,如果它的路径包含 `/cmd.sh` 且不在 `a` 或 `b` 文件夹中,就执行 `sh cmd.sh` 命令。请注意,这个脚本同样假定当前文件夹下没有空格或其他特殊字符的文件名。如果有这样的文件名,你需要修改脚本以正确处理它们。

使用shell脚本。编写一个脚本。遍历当前文件夹下的所有文件夹。如果子文件夹包含cmd.sh 就进入子文件夹中执行 sh cmd.sh 直到所有文件夹都遍历完成

可以尝试使用以下脚本来实现: ```bash #!/bin/bash # 遍历当前文件夹下的所有子文件夹 for dir in $(find . -type d) do # 判断子文件夹中是否包含cmd.sh文件 if [ -f "$dir/cmd.sh" ] then # 进入子文件夹并执行cmd.sh cd "$dir" sh cmd.sh cd .. fi done ``` 解释一下脚本中的部分语句: - `$(find . -type d)`:使用`find`命令遍历当前文件夹下所有子文件夹,并将结果传递给循环变量`dir`。 - `[ -f "$dir/cmd.sh" ]`:使用`[ -f ... ]`测试语句判断子文件夹中是否包含`cmd.sh`文件。 - `cd "$dir"`:使用`cd`命令进入子文件夹。 - `sh cmd.sh`:执行`cmd.sh`脚本。 - `cd ..`:返回上一级目录。 注意,该脚本需要放在需要遍历的文件夹中执行。可以使用`chmod +x script.sh`命令给脚本添加执行权限,然后使用`./script.sh`命令执行。

相关推荐

最新推荐

recommend-type

linux shell(.sh)脚本编写和运行入门

主要介绍了linux shell(.sh)脚本编写和运行入门,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

详解shell中source、sh、bash、./执行脚本的区别

主要介绍了shell中source、sh、bash、./执行脚本的区别,需要的朋友可以参考下
recommend-type

shell脚本递归遍历目录及子目录的例子分享

主要介绍了shell脚本递归遍历目录及子目录的例子,需要的朋友可以参考下
recommend-type

Shell脚本用for循环遍历参数的方法技巧

今天小编就为大家分享一篇关于Shell脚本用for循环遍历参数的方法技巧,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
recommend-type

Linux—编写shell脚本操作数据库执行sql

  在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写。   一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行。本篇文章,我们可以通过写shell脚本来执行...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。