2

我有一个 shell 脚本,它执行一些功能,如制作图像、下载 tar 文件、导出环境变量、下载图像 ...n 任务等。每个任务都有单独的功能。如果我获取 shell 脚本,它将开始一个一个地运行函数。有没有办法让shell可以使用这些函数而不执行它。获取 shell 脚本将使该函数可用于 shell,但它将开始执行它。

实际代码:

     do_task1();
     #some logging here 
     #shell commands  
     do_task2(); 
     #error checks
     #....
     # there are lot of such things as well as user defined functions.

由于存在对函数的调用,因此获取此文件实际上将开始执行此文件。我希望单独的用户定义函数在 shell 提示符下可用。

一种方法是使用 C 风格的编码,即拥有将调用其他函数的 main 函数。每当我希望单独的函数在没有 exec 的情况下在 shell 中可用时,我就可以单独评论该 main 调用。现在我没有主要功能。

  function main()
  {
   do_task1();
    #add all the commands and functions here.
   do_task2();
  }
main # I can comment this.

有没有其他方法(或一些 shell 命令)来单独加载函数?

为什么我需要这个?这对调试很有用。如果我想运行这个 shell 脚本的一些功能,我可以运行它。

4

1 回答 1

2

大多数 shell(如bashzsh)都支持函数。您可以定义函数并任意调用它们。使用函数定义获取文件将不会执行它们。

于 2013-08-12T08:20:45.633 回答