如何将目录下的脚本一次性全部执行
2020-05-28 16:03:13来源:博客园 阅读 ()
如何将目录下的脚本一次性全部执行
大家好,我是良许。
我们在平时工作的时候,为了测试产品的一些功能,我们会写一系列的脚本,并且把它们放在同一个目录下。在做测试的时候,我们通常会依次执行这些脚本,然后记录测试结果。
这样做的弊端是显而易见的,那就是效率太低。如果脚本数不多,你的「时间管理」能力又很强的话,那么问题不大。但如果脚本数很多,那么你很可能就有一拳打爆屏幕的冲动(别问我怎么知道,要不是我的同事拼死拉着,我的屏幕很可能已经爆了好几块了)。
本文就给大家介绍三种一次性执行目录下所有脚本的方法。
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 {} \;
STAY
HOME
STAY
SAFE
上面的命令是指定了只在 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" ; done
STAY
HOME
STAY
SAFE
如果你想执行目录下所有的脚本,可以做一个小小的改动:
$ for f in ~/scripts/*.sh ; do [ -x "$f" ] && [ ! -d "$f" ] && "$f" ; done
公众号:良许Linux
hello world!
STAY
HOME
STAY
SAFE
当然了,如果你还想要执行其它脚本,或者有其它需求,可以发挥你的想象,写出对应的命令来。
最后,最近很多小伙伴找我要Linux学习路线图,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下:
免费送给大家,只求大家金指给我点个赞!
链接:https://pan.baidu.com/s/1_6uniaFV0rdMWIdMwgZjbg
提取码:9pbc
也希望有小伙伴能加入我,把这份电子书做得更完美!
有收获?希望老铁们来个三连击,给更多的人看到这篇文章
推荐阅读:
- 干货 | 程序员进阶架构师必备资源免费送
- 神器 | 支持搜索的资源网站
原文链接:https://www.cnblogs.com/yychuyu/p/12983328.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- 信息泄漏时代,如何让自己的密码更安全? 2020-06-10
- 如何监控 Linux 服务器状态? 2020-06-06
- Xshell如何配置并远程连接Linux服务器详解 2020-05-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash