通过编写函数减少代码冗余和维护。在编程时,您实际上是在定义要由计算机执行的过程或例程。一个简单的类比是将计算机编程比作烘烤面包:您列出一次构成工作环境的配料,然后列出烘烤面包必须采取的步骤。在编程和烘焙中,必须以不同的间隔重复某些步骤。例如,在吐司中,这可能是酵母培养的过程:STIR=100SNOOZE=86400functionfeed_culture{remove_from(pantry)add(flour,water)stir($STIR)sleep($SNOOZE)}然后,揉面团并发酵:KNEAD=600SNOOZE=7200functionprocess_dough{remove_from(proofing_drawer)knead($KNEAD)return_to_drawer($SNOOZE)}在编程中,这些子程序可以表示为函数。函数对程序员很重要,因为它们有助于减少代码中的冗余,从而减少所需的维护量。比如假设一个编程烤面包的场景,如果你需要改变面团发酵的时间,你只需要改变一次时间,只要你之前用过这个函数,或者使用一个变量(示例中的SNOOZE代码)或直接在处理面团的子程序中更改时间。这可以为您节省大量时间,因为您不必为每一个可能正在打样的面团检查代码库,更不用说担心遗漏一个了。许多错误是由于缺少不改变的值或错误执行的sed命令引起的,他们希望捕获所有可能性,而不必手动查找它们。在Bash中,定义函数就像使用它们一样简单,无论是在书面脚本中还是在独立文件中。如果将函数保存到单独的文件中。然后它可以被引入到脚本中,就像在C语言或C++中包含一个库或者将一个模块导入到Python中一样。要创建Bash函数,请使用关键字function:functionfoo{#codehere}以下是如何在函数中使用参数的示例(有些人为设计,因此可能更简单):#!/usr/bin/envbashARG=$1functionmimic{if[[-z$ARG]];然后ARG='world'fiecho"hello$ARG"}mimic$ARG结果如下:$./mimichelloworld$./mimiceverybodyhelloeverybody请注意执行函数的脚本。对于脚本编写新手来说,这是一个常见的混淆点:函数不会自动执行。它们作为潜在例程存在,直到被调用。如果未调用该函数,则该函数只是定义并且永远不会运行。如果您是Bash的新手,请尝试在包含最后一行的情况下执行示例脚本一次,然后在最后一行被注释掉的情况下再次执行。使用函数函数是一个重要的编程概念,即使对于简单的脚本也是如此。您对函数越熟悉,面对复杂的问题时,您就会越轻松,这些问题不仅需要声明性命令行,还需要更多动态。将常用函数保存在单独的文件中也可以节省一些工作,因为这将帮助您建立常用的过程,以便您可以跨项目重用它们。查看您的脚本编写习惯,看看使用函数是否合适。
