bash中的grep函数

在编程时,实际上是在定义要由计算机执行的过程或例程 。 一个简单的类比将计算机编程与烤面包进行比较:您一次列出了要设置工作环境的成分,然后列出了最终要面包所必须采取的步骤。 在编程和烘烤中,必须以不同的间隔重复执行某些步骤。 例如,在烤面包中,这可能是喂食发酵面团的过程:

STIR = 100
SNOOZE = 86400

function feed_culture {
remove_from ( pantry )
add ( flour, water )
stir ( $STIR )
sleep ( $SNOOZE )
}


然后,将面团揉和打样:

KNEAD = 600
SNOOZE = 7200

function process_dough {
remove_from ( proofing_drawer )
knead ( $KNEAD )
return_to_drawer ( $SNOOZE )
}

 

功能 。 函数对程序员很重要,因为它们有助于减少代码中的冗余,从而减少了所需的维护量。 例如,在以编程方式烤制面包的假想场景中,如果您需要更改面团打样的时间,只要您以前使用过一个函数,则只需更改一次秒值,即使用变量(在示例代码中称为SNOOZE )或直接在处理面团的子例程中使用。 这样可以节省您很多时间,因为您不必遍历代码库就可能会遇到每一个提到面团变硬的问题,而不必担心丢失面团。 许多错误是由未更改的缺失值或执行不正确的sed命令引起的,它们希望捕获每个最后的匹配而不必手动寻找它们。

在Bash中 ,定义功能就像在正在编写的脚本文件中或在单独的文件中进行设置一样容易。 如果您保存功能,一个专用的文件,你可以source到你的脚本,你会include在C或C ++库或import模块到Python的。 要创建一个Bash函数,请使用关键字function

function foo {
# code here
}

这是一个函数如何与参数一起使用的简单示例(有些人为设计,因为它可能更简单):

#!/usr/bin/env bash
ARG = $1

function mimic {
if [ [ -z $ARG ] ] ; then
ARG = 'world'
fi
echo "hello $ARG "
}

mimic $ARG


结果如下:

$ . / mimic
hello world
$ . / mimic everybody
hello everybody

请注意脚本的最后一行,该脚本执行该功能。 对于初学者和程序员来说,这是一个普遍的困惑点:函数不会自动执行。 它们作为潜在的例程存在,直到被调用。

如果没有一行调用该函数,该函数将仅被定义并且永远不会运行。

如果您不熟悉Bash,请尝试在包含最后一行的情况下执行示例脚本一次,然后在注释掉最后一行的情况下再次执行示例脚本。

使用功能

即使对于简单的脚本,功能也是至关重要的编程概念。 您对功能的适应程度越高,面对一个复杂的问题(不仅需要声明性的命令行),还可以拥有更动态的功能,从而获得更好的收益。 将通用功能保存在单独的文件中还可以节省一些工作,因为这将帮助您建立常用的例程,以便可以在项目中重用它们。 查看您的脚本编写习惯,并查看函数可能适合的位置。

翻译自: https://opensource.com/article/20/6/bash-functions

bash中的grep函数

bash中的grep函数_如何在Bash中编写函数相关推荐

  1. linux grep 排除_如何在Linux中排除Grep?

    linux grep 排除 grep is very useful tool used by a lot of tech guys. grep provides different functions ...

  2. python 参数个数 同名函数_如何在python中编写不同参数的同名方法

    我在Java背景下学习Python(3.x). 我有一个python程序,我在其中创建一个personObject并将其添加到列表中.p = Person("John") list ...

  3. typescript中函数_如何在TypeScript中合成Canvas动画

    typescript中函数 by Changhui Xu 徐昌辉 如何在TypeScript中合成Canvas动画 (How to Compose Canvas Animations in TypeS ...

  4. python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)

    在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...

  5. matlab figure函数_如何在Matlab中使用GUI做一个简易音乐播放器? ---- (六)控件间的数据传递...

    我纠结了两个星期是否要写这一章-最后决定还是要写一章收尾,来解释其中的控件间的数据传递问题. 在前五篇中,如果有童鞋跟上了我的思路或者做完了这样一个gui,会发现还有一个一直避开的遗留问题,就是将歌曲 ...

  6. mysql节假日函数_如何在MySQL中计算不包括周末和节假日的日期差

    我需要计算两个日期之间的天数(工作日),不包括周末(最重要)和假期 SELECT DATEDIFF(end_date, start_date) from accounts 但是,我不知道该如何在MyS ...

  7. iserror 函数_如何在Excel中使用CLEAN,FIND和ISERROR工作表函数

    iserror 函数 Excel工作表中提供了很多功能,因此用户经常坚持使用最常用的功能,直到他们开始探索尝试找到问题的解决方案为止. 有时候,甚至没有想到可能有一个功能可以解决该问题. 因此,我决定 ...

  8. python中怎么用乘法_如何在python中乘法函数?

    def sub3(n): return n - 3 def square(n): return n * n 在python中编写函数非常简单: >>> my_list [0, 1, ...

  9. shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?

    每个 Linux 管理员都可能听到过 shell 这个词.你知道什么是 shell 吗? 你知道 shell 在 Linux 中的作用是什么吗? Linux 中有多少个 shell 可用? -- Ma ...

最新文章

  1. Kubernetes之路 2 - 利用LXCFS提升容器资源可见性
  2. 什么是 dolby AC-3
  3. (转)java类初始化顺序 - jackyrong的世界 - 博客园
  4. android toolchain maintain team
  5. templatefield 动态_GridView动态创建templateField | 学步园
  6. 手把手教程:用Python开发一个自然语言处理模型,并用Flask进行部署
  7. Pygame实战:升级后的2048小游戏—解锁新花样 根本停不下来
  8. python第十六课——外部函数and内部函数
  9. 3G手机Android应用开发视频教程_黎活明老师的视频(第五天课程)总共有八天课程...
  10. 3.1.1 Spring 简介
  11. python人像绘制_python实现人像动漫化的示例代码
  12. vue中配置不同的代理同时访问不同的后台
  13. vue-cli history 本地开发刷新页面丢失_react 开发入门
  14. 【互亿无线】如何选择国际短信服务商
  15. 单片机和微型计算机硬件组成的异同,单片机和嵌入式的区别是什么
  16. 苹果电脑QQ邮件服务器,苹果邮件设置qq邮箱的步骤_苹果电脑自带邮件怎么设置qq邮箱-win7之家...
  17. Echarts Map地图类型使用
  18. 2020,SOS,既然不能选择,那便一路向前——在20年周期的新开端,聊聊泡沫、科技和经济--童亚斋
  19. 从Adobe调查问卷看原型设计工具大战
  20. 使用el-tag文字过长超出隐藏

热门文章

  1. RocketMQ 4.5.1 环境搭建
  2. Dubbo基础知识总结
  3. PHP扩展库PEAR被攻击,近半年下载者或被影响
  4. Oracle10gR5GridControl InstallOnLinux
  5. 移动端页面(响应式)
  6. C语言第五次博客作业
  7. 【转】想象5年后的你
  8. [C#]struct如何支持虚方法覆盖和接口继承
  9. Struts2 过滤器与拦截器
  10. pytorch学习笔记(5):vgg实现以及一些tricks