公司建网站:来教你怎么将目录下的脚本一次性悉数执行

我们好,我是良许。

我们在平时工作的时分,为了测试产品的一些功用,我们会写一系列的脚本,并且把它们放在同一个目录下。在做测试的时分,我们通常会顺次执行这些脚本,然跋文录测试成果。

这样做的弊端是清楚明了的,那就是功率太低。假如脚本数不多,你的「时间管理」能力又很强的话,那么问题不大。但假如脚本数很多,那么你极可能就有一拳打爆屏幕的激动(别问我怎么知道,要不是我的同事拼死拉着,我的屏幕极可能现已爆了好几块了)。

本文就给我们介绍三种一次性执行目录下所有脚本的方法。

1. run-parts


首要引荐一个很实用,但我们不是很熟悉的命令:run-parts 。它的根本用法如下:
$ run-parts option <directory-path>

可是,其实不是目录下所有的脚本都会被执行,仍是会有一些命名要求的。脚本的名字满足以下条件才会被执行:大/小写、数字、下划线(_)、短杠线(-)。

为了能选出满足条件的脚本,我们通常需要加上 --regex 选项。假定我们的目录下有这些脚本:


因为脚本通常为以 .sh 结束,所以假如你的命名都契合规则的话,想要执行所有脚本的话,可以这样操作:
$ run-parts --regex 'sh$' .

执行成果:


假如你只想要执行以 s 最初,sh 结束的脚本,可以结合如下正则表达式:
$ run-parts --regex '^s.*sh$' .

执行成果:


当然了,你可以依据自己的脚本状况,写出对应的正则表达式。

为了防止误操作,在脚本真正执行之前,可以先看下将被执行的脚本会有哪些。我们可以加上 --list 选项:
$ run-parts --list --regex '^s.*sh$' .

执行成果:


如成果所示,加上 --list 选项后,它只会列出将要执行的脚本,便于你的核对,其实不会真正去执行这些脚本。

2. find


可是,run-parts 这个命令仍是比较小众,估计很多人其实不知道这个命令,更不用说知道怎么去使用了。另外一个执行目录下所有脚本的方法是使用 find 命令,这个我们会更熟悉一些。

详细来讲,我们能够使用 find 命令来找到方针目录下所有的脚本,然后再使用 -exec 选项去执行找到的脚本。
$ find ~/scripts -maxdepth 1 -type f -executable -name 's*' -exec {} \;STAYHOMESTAYSAFE

上面的命令是指定了只在 scripts/ 目录这个层级下找脚本,可是,你还可以去掉这个限制,就能够查找其时目录及其子目录下所有的脚本了:
$ find -maxdepth 1 -type f -executable -name '*.sh' -exec {} \;

3. for


假如你 Shell 的水平不错的话,那么 for 循环也是一个不错的选择。比如你想执行目录下所有以 s 最初的脚本,可以这样写:
$ for f in ~/scripts/s* ; do [ -x "$f" ] && [ ! -d "$f" ] && "$f" ; doneSTAYHOMESTAYSAFE

假如你想执行目录下所有的脚本,可以做一个小小的改动:
$ for f in ~/scripts/*.sh ; do [ -x "$f" ] && [ ! -d "$f" ] && "$f" ; done大众号:良许Linuxhello world!STAYHOMESTAYSAFE

当然了,假如你还想要执行其它脚本,或者有其它需求,可以发挥你的想象,写出对应的命令来。


终究,最近很多小同伴找我要Linux学习道路图,于是我依据自己的经历,使用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试仍是自我提高,相信都会对你有协助!目录如下:


免费送给我们,只求我们金指给我点个赞!

链接:https://pan.baidu.com/s/1_6uniaFV0rdMWIdMwgZjbg 提取码:9pbc

也期望有小同伴能加入我,把这份电子书做得更完美!

有收获?期望老铁们来个三连击,给更多的人看到这篇文章


引荐阅读:
  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 支撑查找的资源网站

【免责声明】本文仅代表作者或发布者个人观念,不代表(www.lmnkf.cn)及其所属公司官方发声,对文章观念有疑义请先联络作者或发布者自己修正,若内容触及侵权或违法信息,请先联络发布者或作者删除,若需我们协助请联络平台管理员,Emailcxb5918(本平台不支撑其他投诉反馈渠道,谢谢合作)。若需要学习以上相关常识请到巨推学院观看视频教程,网站地址www.tsllg.cn。

相关阅读