如何从文本脚本中调用一个函数?
我有一个包含很多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]
凉!