当前位置:职场发展 > 如何一次执行目录下的所有脚本

如何一次执行目录下的所有脚本

  • 发布:2023-10-06 22:42

我们平时工作的时候,为了测试产品的一些功能,我们会写一系列的脚本,放在同一个目录下。在进行测试时,我们通常会依次执行这些脚本,然后记录测试结果。 这样做的缺点很明显,就是效率太低。如果剧本不多,而且你的“时间管理”能力很强,那么问题不大。但如果脚本很多的话,你可能会有一拳打爆屏幕的冲动(别问我怎么知道,要不是我同事拼命坚持,我的屏幕早就炸了)可能爆炸了好几块)。 本文将向您介绍三种一次性执行目录中所有脚本的方法。 1.运行部件 首先推荐一个非常实用但不是很熟悉的命令:run-parts。其基本用法如下: $ 运行部件选项 不过,并不是该目录下的所有脚本都会被执行,并且仍然会有一些命名要求。脚本名称只有满足以下条件才会被执行:大小写、数字、下划线(_)、破折号(-)。 为了选择符合条件的脚本,我们通常需要添加--regex选项。如果我们的目录中有这些脚本: 由于脚本一般以.sh结尾,如果你的名字符合规则并且你想执行所有脚本,你可以这样做: $ run-parts --regex 'sh$' 。 结果: 如果只想执行以 s 开头、以 sh 结尾的脚本,可以组合以下正则表达式: $ run-parts --regex '^s.*sh$' 。 结果: 当然,你可以根据自己的脚本情况编写相应的正则表达式。 为了防止误操作,在脚本真正执行之前,可以先检查一下会执行哪些脚本。我们可以添加 --list 选项: $ run-parts --list --regex '^s.*sh$' 。 结果: 结果显示,添加--list选项后,只会列出要执行的脚本,方便你验证,而不会真正执行这些脚本。 2.查找 然而,run-parts 命令仍然比较小众。估计很多人都不知道这个命令,更不用说知道怎么用了。另一种执行目录下所有脚本的方法是使用find命令,大家都会比较熟悉。 具体来说,我们可以使用find命令查找目标目录下的所有脚本,然后使用-exec选项执行找到的脚本。$ find ~/scripts -maxdepth 1 -type f -executable -name 's*' -exec {} \;留在家里保持安全 上面的命令指定只能在scripts/目录级别找到脚本。但是,您也可以删除此限制并搜索当前目录及其子目录中的所有脚本: $ find -maxdepth 1 -type f -executable -name '*.sh' -exec {} \; 3.为了 如果你的Shell技术不错,那么for循环也是一个不错的选择。例如,如果要执行目录下所有以s开头的脚本,可以这样写: $ for f in ~/scripts/s* ;做 [ -x "$f" ] && [ ! -d "$f" ] && "$f" ;完成 留在家里保持安全 如果你想执行该目录下的所有脚本,可以做一个小改动: $ for f in ~/scripts/*.sh ;做 [ -x "$f" ] && [ ! -d "$f" ] && "$f" ;完成公众号:良旭Linux你好世界!留在家里保持安全 当然,如果你想执行其他脚本或者有其他需求,你可以发挥你的想象力,编写相应的命令。 本文经公众号“良旭Linux”许可转载。某世界500强外企的Linux开发工程师Liangxu,在公众号分享了很多有用的Linux资讯,欢迎关注!

相关文章