如何在新终端访问bashrc中的功能

时间:2017-02-16 18:50:27

标签: bash function shell unix command

我在.bashrc这样创建了一个函数;

 #!/bin/bash
 function test() { ls; }
 export -f test

并在这样的新终端中调用它;

$ test

结果为test: command not found

我在.bashrc访问某个功能时做错了什么?

2 个答案:

答案 0 :(得分:2)

.bashrc来源之前,无法明确地或在非登录交互式shell启动时定义该函数。如果您的终端启动登录shell,则不会获取该文件。

您无需导出该功能。

答案 1 :(得分:2)

您可能希望在主目录中创建一个“.function”文件,并将其放在.bashrc中。

之前:如下所示,它不起作用。

%_Host@User> add 2 3
bash: add: command not found...

在$ HOME / .function中定义一个函数

%_Host@User> cat ~/.function
add ()
{
        echo "$1 + $2" | bc
}

以下是我在$ HOME / .bashrc中获取所有功能的方法

%_Host@User> cat ~/.bashrc|grep source|grep func
        source $HOME/.function
%_Host@User>

您可能需要将其重击或重新登录,或者只需在提示符下键入bash即可。

现在可行:

%_Host@User> add 2 3
5
%_Host@User>

请试一试。感谢。