加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Shell脚本和自动化指南

发布时间:2020-12-16 06:18:13 所属栏目:大数据 来源:网络整理
导读:我目前正在研究一些脚本,这些脚本可以自动化很多东西并且中等大小.我已经开始关注某些事情,使我的脚本具有通用性和可移植性,如: 管理员登录以安排脚本 使用绝对路径 使用配置文件 在开发时使用write-host并在部署(调试)时切换到日志记录 我最感兴趣的是知道
我目前正在研究一些脚本,这些脚本可以自动化很多东西并且中等大小.我已经开始关注某些事情,使我的脚本具有通用性和可移植性,如:

>管理员登录以安排脚本
>使用绝对路径
>使用配置文件
>在开发时使用write-host并在部署(调试)时切换到日志记录

我最感兴趣的是知道是否有任何标准的脚本技术和指南,旨在使脚本开发人员生活简单.我在perl和powershell上工作,所以更受欢迎和赞赏的是更广泛的建议.

在此先感谢您的帮助.
steeluser

解决方法

这有点宽泛,我肯定是主观的.但是,我已经做了一些脚本工作,可以提供一些我从经验中学到的东西.

>使脚本数据驱动.硬编码尽可能少.路径,资源位置等所有内容都应该从配置文件中更改,而不是通过编辑主脚本.这与你关于绝对路径的观点有关.对所有路径进行硬编码是不行的.使一切相对强加太多限制.有一个名为变量的变量,例如DATA_ROOT可以修改,然后让所有例程引用${DATA_ROOT} / resources / images等等,这样会很好.${PROGRAM_ROOT}也是有用的您可以对套件进行多次安装以进行测试等.
>错误检查.脚本语言通常是动态类型的,因此请务必检查您所做的每件事的返回值.创建一个可以执行诸如call_safely(fn,arg0,arg1,..)和call_and_abort_on_failure(fn,…)等事情的库甚至是有意义的.
>自由地评论和记录.脚本更容易修改编译的程序,因此当人们想要扩展它们时,它们经常以错误的方式修补.确保您的API具有良好的文档记录,以便在人们想要添加新的命令行选项时,他们知道如何执行此操作,而不是在您的上面编写包装脚本.
>如果需要,让一个脚本做一件事并编写聚合器.具有if(FLAG){do_something} else {do_something_completely_different}的脚本会杀死你.让你的脚本做一件事并做好,如果你愿意,你可以编写包装,根据需要委托给这些脚本(以获得更好的用户体验).
>大量使用第三方工具而不是发明自己的工具.命令行解析,文本处理等都是旧区域,并且有很多库可以很好地完成它们.使用这些而不是重新实现.最无bug的程序是从未编写过的程序.
>使您的日志记录和测试框架坚如磐石.当坏事发生时,你应该知道一切,而不必重新运行脚本.从第一天开始使用一些标准日志记录框架,并使其可以从可以按需重新加载的文件进行配置.确保您的代码经过单元测试,以便在进行新的更改时不会引入回归错误.此外,记录计时指标,以便随时了解脚本放慢速度的位置.它将来会很有用.
>尽可能使您的脚本免受修补.这很难描述,但我可以举个例子.我有一些脚本来跟踪各种分支的构建的各种指标,并将它们放入目录中.我写了它,如果你想跟踪一个分支foo,你所要做的就是在某个地方创建一个名为foo的目录,它会跟踪它.您不必修补很多东西,而实际想要跟踪指标的经理可以根据需要创建目录.

这些是我能从头脑中想到的要点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读