如何从文本脚本中调用一个函数?

我有一个包含很多function的文本文件。 例如:

# fisrt function # runs update and upgrade function upug() { sudo apt-get update && sudo apt-get upgrade } # second function # find out the processes running that use the most memory function memusage() { ps aux | sort -nrk 4 | head } # third function # install package function ipkg() { sudo apt-get install } [...] 

现在我希望能够将这些函数用作终端中类似的东西:

  • 在终端呼叫function upug()运行upug

     user@test-pc:~$ upug 
  • 在终端呼叫function memusage()运行memusage

     user@test-pc:~$ memusage 
  • 使用unning ipkg package_Name调用function ipkg()

     user@test-pc:~$ ipkg package_Name 

我使用函数名称为每个命令创建了一个别名。 现在的问题是如何用别名来调用这些函数呢?

如果我是你,我会将函数和别名放入~/.bash_aliases (参见别名:.bash_rc,.bash_aliases和/ usr / local / bin之间的区别 )。

由于您已经在当前会话中定义了别名,因此您可以直接使用该文本文件来调用别名命令:

 user@test-pc:~$ . /my_commands.txt user@test-pc:~$ upug 

或者,您可以从~/.bashrc加载文件,如下所示:

 if [ -f /my_commands.txt ]; then . /my_commands.txt fi 

最后我发现了一个简单的解决方 我已经保存了名为my_funcs文本文件,它位于我的主目录中。 然后我用以下命令调用一个函数:

 source file_Name; func_Nmae [extra_Parameters] 

例如使用ipkg函数并安装我使用简单命令的任何包,如下面的命令:

 source my_funcs; ipkg package_Nmae 

运行source my_funcs; ipkg vlc结果source my_funcs; ipkg vlc source my_funcs; ipkg vlc如下:

 kasiya@kasiya-pc:~$ source my_funcs; ipkg vlc [sudo] password for kasiya: Reading package lists... Done Building dependency tree Reading state information... Done [...] 

我运行alias go='source my_funcs;' 在终端中添加此命令以作为~/.bashrc文件中的别名,下次我只使用短命令来安装包或使用任何函数:

 go function_Name [parameters] 

凉!